接口
java语言的继承是单一继承,一个子类只能有一个父类
java语言给我们提供了一种机制,用于处理继承单一的局限性,接口。
接口:
接口是一个比较抽象类还抽象的类,接口里的所有的方法全是抽象方法,接口和类的关系是
实现,implements
格式:
interface 接口名{
}
接口的成员特点:
只能有抽象方法
只能有常量。
默认使用public & abstract修饰方法
只能使用public & abstract修饰方法
默认使用public static final来修饰常量
建议:
建议手动的给上默认修饰符
注意:
接口不能实例化
类与接口的关系是实现关系,一个类实现一个接口必须实现它的所有方法
关系:
类与类:继承关系,单一继承,多层继承
类与接口:实现关系
接口与接口:继承关系 多继承
总结:相同之间为继承,不同之间为实现
接口的思想:
接口的优点:
类与接口的关系:实现关系,而且是多实现,一个类可以实现多个接口
类与类关系:继承关系,单一继承,一个类只能有一个父类
优点1:打破了类与类之间单一继承的局限性。
(USB接口)不管那个电脑的USB接口都一样。
优点2:对外提供规则规范
优点3:降低了程序的耦合性。(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)
接口和抽象类的区别:
共性:
不断的抽取,抽取出抽象的概念
区别:
与类之间的关系
类与接口是实现关系,而且是多实现,一个类可以实现多个接口
类与抽象类是继承关系,java中的继承是单一继承,一个类只能有一个父类,java中的继承是多层继承
成员
成员变量
抽象类可以有成员变量,也可以有常量;
接口只能有常量。
成员方法
抽象类可以有抽象方法,也可以有非抽象爱过你方法
接口只能有抽象方法,而且方法有默认修饰符 public abstract
构造方法
抽象类可以有构造方法
接口没有构造方法
案例:
运动员案例:
篮球运动员和教练
乒乓球运动员和教练
现在篮球运动员和教练要出国访问,需要学习英语
分析:
由下至上,不断向上抽取的过程
实现
由上至下,先实现共性
使用
使用具体的子类
多态
多态
多态的前提
子父类的继承关系
方法的重写
父类引用指向子类对象
动态绑定:
编译期间
运行期间:运行期间调用的方法,是根据其具体的类型
多态的成员特点:
成员变量:
编译时看左边,运行时看左边(因为变量没有重写功能)
成员方法
编译看左边,运行看右边(动态绑定)
静态方法
编译看左边,运行看左边(因为调用静态方法不需要创建对象。)
静态方法不能被重写。
总结:
编译看左边
多态的向上转型和向下转型
引用类型的转换
向上转型
由小到大(子类型转换成父类型)
Animal a = new Dog();//向上转型
向下转型
由大到小(需要明确的给出要转的类型)
Dog d = (Dog)a;//向下转型
基本数据类型的转换
自动类型转换
由小到大
强制类型转换
由大到小
多态的优缺点
优点:可以提高可维护性(多态前提所保证的),提高代码的可扩展性
缺点:无法直接访问子类的特有成员
|
|