一、多态性的描述
某一类事物的多种存在形态。
二、多态性的前提条件
1、类之间有继承关系
2、要有子类对父类的复写
三、多态的转型分类
1、向上转型 子→父
2、向下转型 父→子 向下转型时,借助instanceof
四、成员变量、成员函数和静态函数在多态中编译时和运行时
1、成员变量
编译时:参考引用型变量所属的类中是否有调用的成员表量,如果有,编译通过;如果没有,编译失败。
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:子类对象的多态性并不使用属性,编译和运行都是参考等号的左边,属性没有覆盖性。
2、成员函数
编译时:参考引用型变量所属的类中是否有调用的函数,如果有,编译通过;没有,编译失败。
运行时:参考的是对象所属的类中是否调用函数
简单说:编译看左边,运行看右边
3、静态函数
编译时:参考引用型变量所属的类中是否有调用的静态方法
运行时:参考引用型变量所属的类中是否有调用的静态方法
简单说:对于静态方法,是不需要对象的,直接用类名调用的,编译和运行都看左边
五、多态的优点
1、使用多态可以使代码之间的耦合度降低
2、项目的扩展能力增强