对象的多态性:
多态的好处:
提高了代码的扩展性,前期定义的代码可以使用后期的内容。
多态的弊端:
前期定义的内容不能使用后期子类的特有内容。
多态的前提:
1. 必须有关系,继承,实现。
2. 要有覆盖。
多态的转型:
多态的类型判断:
instanceof:用于判断对象的具体类型,只能用于引用数据类型的判断。通常在向下转型前用于健壮性的判断。
多态时成员的特点:
1. 成员变量
编译时:参考引用型变量所属的类中是否有调用的成员变量,有,编译通过,没有,编译失败。
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说,编译和运行都参考左边。
2. 成员函数(非静态)
编译时:参考引用型变量所属的类中是否有调用的函数,有,编译通过,没有,编译失败。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说,编译看左边,运行看右边。
3. 静态函数
编译时:参考引用型变量所属的类中是否有调用的静态方法。
运行时:参考的是对象所属的类中是否有调用的静态方法。
简单说,编译和运行都看左边。其实对于静态方法,是不需要对象的,直接用类名调用即可。