第三章 多态
1.什么是多态
多态是具有表现多种形态的能力的特征
同一种操作,由于条件不同,产生的结果也不同
多态:同一个引用类型,使用不同的实例而执行不同操作
多态就是子类转换成父类 父类类型new子类对象
2.如何实现多态
实现思路
编写具有继承关系的父类和子类
子类方法重写父类方法
两种形式
使用父类作为方法形参实现多态
-
将一个父类的引用指向一个子类对象,称为向上转型(upcasting),自动进行类型转换
-
此时通过父类引用变量调用的是子类覆盖或继承父类的方法,不是父类的方法
-
此时通过父类引用变量无法调用子类特有的方法
使用父类作为方法返回值实现多态
父类到子类的转换
定义
该运算符用于判断一个对象是否属于属于一个类或者实现了一个接口,结果为true或false。在强制类型转换之前通过instanceof运算符检查对象的真实类型,在进行相应的强制类型转换,这样就可以避免类型转换异常,从而提高代码的健壮性。
用 instanceof 运算符: instanceof 通常和强制类型转换结合使用 判断对象
对象 instanceof 类或接口
在进行强制引用类型转换时,先通过instanceof运算符进行类型判断,再进行相应的强制类型转换,这样可以有效地避免出现类型转换异常。
3.实现多态的3个条件
- 继承的存在(继承是多态的基础,没有继承就没有多态)。
- 子类重写父类的方法(多态下调用子类重写后的方法)。
- 父类引用变量指向子类对象(子类到父类的类型转换)。