多态
同一个对象,在不同的时刻表现出来的不同形态
多态的前提和体现
- 有继承/实现关系
- 有方法重写
- 有父(类/接口)引用指向(子/实现)类对象
多态中成员访问特点
- 成员变量,编译看左边,执行看左边
- 成员方法,编译看左边,执行看右边【重写的方法】
多态的优缺点
-
优点:
定义方法时,使用父型替代子型作为参数,而在使用时,程序识别到的是具体的子类型参与操作,提高了程序的扩展性
-
缺点:
不能使用子类的特有功能
多态中的转型【避开多态缺点 ,使用其优点】
-
向上转型
父类引用指向子类对象Animal animal = new Dog();
-
向下转型
父类引用转为子类对象【只能转换为父类引用对象的实际子类,否则就ClassCastException】Dog dog = (Dog)animal;
向下转型使用前可以用以下语句判断父类引用对象是否是要转型到的子类
对象 instanceof 类型
网友评论