一、多态的概念
生活中多态
同一个操作,由于条件不同,产生的结果不同。
程序中多态
同一个方法,不同的对象可以做出不同响应。
同一引用类型,使用不同实例(对象)而执行不同操作。
父类引用指向子类对象
1. 引用多态
父类引用指向本类对象
父类引用指向子类对象
2. 方法多态
创建本类对象时,调用的方法为本类方法
创建子类对象时,调用的方法为子类重写的方法或继承的方法
二、实现多态的三要素
- 有继承关系
- 重写
- 父类引用指向子类对象
三、引用类型转换
- 向上转型
父类型 引用变量名 = new 子类型();
自动类型转换 小类型->大类型 - 向下转型
子类型 引用变量名 = (子类型)父类型的引用变量;
double b = 3.4;
int a = (int)b;
强制类型转换 大类型->小类型 - 存在问题:ClassCastException类型转换异常
存在继承关系才能向下转型
解决方法:instanceof运算符,判断引用类型是否是真实子类型
四、instanceof运算符