a- 9、接口:当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式定义和表示,就是接口
- 格式: interface{}
- 接口中成员的修饰符是固定的:
- 成员变量:public static final (只能是常量)
- 成员方法:public abstract
- 由此可知,接口中的成员都是公共的权限
- 接口是对外暴露的规则
- 接口是程序功能的拓展
- P.S.
- 1 虽然抽象类中的全局变量和抽象方法的修饰符都可以不用写,但是这样阅读性很差。 所以,最好写上。
- 2 类与类之间是继承关系,类与接口之间是实现关系。
- 3 接口不可以实例化,能由实现了接口并覆盖了接口中所有的抽象方法的子类实例化。 否则,这个子类就是
- 一个抽象类
- 接口的出现将“ 多继承” 通过另一种形式体现出来,即“ 多实现” 。
- 在java中不直接支持多继承,因为会出现调用的不确定性。
- 所以,java将多继承机制进行改良,在java中变成了多实现,一个类可以实现多个接口。
- 接口的出现避免了单继承的局限性。
- 一个类在继承另一个类的同时,还可以实现多个接口。
- interface A{
- public abstract void show();//接口中方法没有实体
- }
- interface B{
- public abstract void show1();//抽象方法没有实体
- }
- class C{
- public void method(){};
- }
- class D extends C implements A,B{
- public abstract void show(){} //重写接口中的方法
- public abstract void show1(){}//重写接口的方法
- }
- 10、抽象类和接口的异同点
- 相同点:都是不断向上抽取而来的
- 不同点: 1 抽象类需要被继承,而且只能单继承
- 接口需要被实现,而且是多实现
- 2 抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法
- 接口中只能定义抽象方法,必须由子类实现
- 3 抽象类的继承,是 is a关系,定义该体系的基本共性内容
- 接口的实现是 like a 关系,是拓展功能
复制代码
|
|