Java多态(三十三)
多态:对象的多种形态
Java 实现多态有 3 个必要条件:
- 继承:在多态中必须存在有继承关系的子类和父类。
- 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
- 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。
只有满足这 3 个条件,才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象,从而执行不同的行为。
1.引用多态
父类的引用可以指向本类的对象
父类的引用可以指向子类的对象
2.方法多态
创建本类对象时,调用的方法为本类方法
创建子类对象时,调用的方法为子类重写的方法或者继承的方法
运行结果:
多态中的引用类型转换
1.向上类型转换 (隐式/自动类型转换),是小类型到大类型的转换
2.向下类型转换 (强制类型转换),是大类型到小类型的转换(有数据溢出的风险)
3.instanceof 运算符 (判断一个对象是否为一个类(或接口、抽象类、父类)的实例),来解决引用对象的类型,避免类型转换的安全性问题
运行结果: