//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继承上个接口。