接口
1、接口中常见的成员:全局常量和抽象方法
注意:接口中的成员都是公共的,修饰符都是可以省略,但不建议,因为那样阅读性差。
2、实现:类与接口之间的关系(implements)
接口是不可实例化的,只能由子类覆盖接口中的所有抽象方法后,子类才可以实例化
3、多实现
1)、出现的原因:java中不支持多继承,于是改良成多实现,接口的出现避免了单继承的局限性
2)、一个类中可以实现多个接口,因为接口中都是抽象方法,都没有方法体
3)、实现与实现之间的关系:可以多继承,因为接口中都是抽象方法,都没有方法体。
4)、一个类在继承另一个类的同时,还可以实现多个接口
4、特点:
1)、接口是对外暴露的规则
2)、接口是程序的功能扩展
3)、接口的出现降低了耦合性(紧密联系程度)
4)、接口可以用来多实现
5、接口与抽象类的异同点
1)、相同点:都是不断向上抽取而来的
2)、不同点:
(1)、前者需要被实现,而且可以多实现;后者需要被继承,但只能当单继承。
(2)、前者只能定义抽象方法,必须由子类去实现;后者可以定义抽象与非抽象类方法,子类继承后,可以直接使用非抽象方法。
(3)、前者在定义体系外的功能扩展;后者可以定义体系的基本共性内容
6、代码示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | abstract class Student{ abstract void study(); void sleep(){ System.out.println( "sleep" ); } } interface Smoke{ public abstract void smoking(); } class Zhangsan extends Student implements Smoke{ public void smoking() {} //实现抽烟接口 @Override void study() {} //复写study方法; } public class AboutInterface { public static void main(String[] args) { Zhangsan zs = new Zhangsan(); zs.sleep(); } } |
转载于:https://blog.51cto.com/dcn1016/1230625