多态(polymorphic):
多种形态
向上造型/自动类型装换:
- 超类型的引用指向派生类的对象
- 能点出来什么,看引用的类型
向下转型/强制类型转换,成功的条件只有如下两种:
- 引用所类型指向的对象,就是该类型
- 引用所指向的对象,实现了给接口或继承了该类
强转时若不符合如上条件,则发生ClassCastExceotion类型转换异常
建议在强制类型转换之前,先通过Instanceof来判断引用的对象是否是该类型
注:Instanceof返回boolean结果,它为true的条件即使强转成功的条件。
若想访问的属性/行为在超类中没有,则需要强制类型转换
多态的实际应用:
- 将不同对象统一封装到超类数组中来访问,实现代码复用
- 将超类型作为参数或返回值类型,传递或返回派生类对象,以扩大方法的应用范围,实现代码的复用