多态:用一个对象,在不同时刻表现出来不同的形态。
多态的前提和体现:
- 有继承/实现关系
- 有方法重写
- 有父类引用指向子类对象。
多态中成员访问特点:
成员变量:编译看左边,执行看左边
成员方法:编译看左边,执行看右边
因为成员方法有重写,变量没有
多态的好处和弊端
好处:提高了程序的拓展性
定义方法的时候,使用父类型作为参数,将来在使用的时候,使用具体的子类型参与操作
弊端:不能使用子类的特有功能
多态中的转型
向上转型
从子到父
父类引用指向子类对象
向下转型
从父到子
父类引用转为子类对象
转换的时候可以使用 if(对象1 instanceof 对象2){
对象1 = (对象2)对象2;
}进行判断是否能转换,避免报错