多态
多态
同一个对象,在不同时刻表现出来的不同形态
前提和体现:
- 有继承/实现关系
- 有方法重写
- 有父类引用指向子类对象
多态中成员访问特点
- 构造方法:同继承一样,子类会通过super访问父类构造方法
- 成员变量:编译看左边(父类),执行看左边(父类)
- 成员方法:编译看左边(父类),执行看右边(子类)
多态的好处和弊端
- 好处:
- 提高程序的扩展性。定义方法时候,使用父类型作为参数,该方法就可以接收父类的任意子类对象
- 弊端:
- 不能使用子类的特有功能
多态中的转型
- 向上转型
- 从子到父
- 父类引用指向子类对象
- 向下转型(强制类型转换)
- 从父到子
- 父类引用转为子类对象
转型存在的风险:
- 如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的时候就会出现ClassCastException
避免强转出现的问题:
- 关键字instanceof