注意:
接口中的
成员变量:一定为常量、静态,默认修饰符public static final
构造方法: 没有
成员方法:必须为抽象,默认修饰符 public Abstract
1 interface Father{ 2 public abstract void show(); 3 } 4 interface Mother{ 5 public abstract void show2(); 6 } 7 8 class Son extends Object implements Father,Mother{ 9 public void show(){ 10 System.out.println("show "); 11 } 12 public void show2(){ 13 System.out.println("show 2"); 14 } 15 } 16 17 class InterfaceDemo3{ 18 public static void main(String []args){ 19 Father f=new Son(); 20 f.show(); 21 //f.show2(); 错误!编译看左边,运行看右边,左边的 f 中没有show2()这个方法。 22 23 Mother m=new Son(); 24 //m.show(); 错误 25 m.show2();//如果实现了接口多集成,那么对应的接口就要调用对用的方法。 26 27 } 28 }
接口与抽象类的区别:
A:成员区别
抽象类:
成员变量: 可以常量,可以变量
构造方法: 有
成员方法: 可以抽象,可以非抽象
接口:
成员变量: 只可以常量
成员方法: 只可以抽象(类实现接口时要重写全部抽象方法)
B:关系区别
类与类
继承,单继承
类与接口:
实现,单实现,多实现
接口与接口
继承,单继承,多继承
C:设计理念的区别:
抽象类被继承体现的是: is a 的关系。抽象类中定义的是该继承体系中的共性功能。
接口被实现体现的是: like a 的关系。接口中定义的是该继承体系的扩展功能。