面向对象第6课——多态——接口

								   		//interface接口课件
package jiekou;
//cpu接口
//关键字interface(与class平级)
//接口就是一套规范,其他的按照这个规范实现(由子类实现才可以使用)
public interface Icpu {
	
	//抽象方法
	//默认由public abstract修饰
	public abstract void run();
	//常量
	//默认修饰符public static final
	public static final double PI=3.14;
}



package jiekou;


//实现接口implements
public class Inter implements Icpu {
	@Override
	//实现接口的方法,run未完成的继承方法。
	public void run() {	
		System.out.println("intel的cpu在运行");
	}
}



package jiekou;

//implements,子类必须实现接口所有的抽象方法才能实例化
public class AMD implements Icpu {

	@Override
	public void run() {
		System.out.println("AMD的cpu在运行");
		
	}
}


package jiekou;

public class computer {

	//cpu
	private Icpu cpu;//变量类型为接口类型,相当于了变量cpu继承了Icpu所有的属性和方法,相当于用cpu实例化了Icpu。

	public Icpu getCpu() {
		return cpu;
	}
	public void setCpu(Icpu cpu) {
		this.cpu = cpu;
	}
	//造一个方法,开机
	public void onPower()
	{
		//cpu开始运行
		cpu.run();//调用接口方法run。
//		System.out.println(cpu.PI);
	}
}



package jiekou;

public class Icputset {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		computer pc=new computer();//用pc实例化computer类,建立pc对象
		Inter y=new Inter();//用y实例化Inter,建立inter的对象y。
		pc.setCpu(y);
		pc.onPower();
		//匿名对象
//		pc.setCpu(new Inter());
//		pc.onPower();
		
		
		computer pc2=new computer();
//		Inter abc=new Inter;
		//匿名对象
		pc2.setCpu(new AMD());
		pc2.onPower();
	}
}
//接口总结
//定义:interface,与class平级
//接口只有抽象方法和常量值;
//特点:特殊的抽象类,只包含常量和抽象方法,接口与抽象类一样不可以实例化。
//作用是定义一种规范	
//所有成员变量默认由public final static修饰。
//所有方法默认由public abstract修饰
//只有抽象方法和常量,无构造方法。
//一个类可以实现多个接口。
//接口可以宽展下一个或者多个接口,建立成interface形式,用extends继承上个接口。

  

原文地址:https://www.cnblogs.com/zhangnaitao/p/5907939.html