多态
一、在代码中的体现:父类或者接口的引用指向其子类的对象。
二、多态的前提:
1》必须要有关系:继承或实现。
2》要有覆盖。
三、多态时,成员的特点:
1》成员变量
编译时:参考引用型变量所属的类中是否有调用的成员变量(有,编译成功, 无,编译失败);
运行时:参考引用型变量所属的类中是否有调用的成员变量,并运行该所属类中的成员变量;
简单说:编译和运行都参考等号左边的引用型变量的类型!
2》成员函数
编译时:参考引用型变量所属的类中是否有调用的成员变量(有,编译成功, 无,编译失败);
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译看左边,运行看右边。
3》静态函数:
编译时:参考引用型变量所属的类中是否有调用的静态方法(有,编译成功, 无,编译失败);
运行时:参考引用型变量所属的类中是否有调用的静态方法,并运行该所属类中的静态方法;
简单说:编译和运行都参考等号左边的引用型变量的类型!
总结:
编译时,都以引用为准.
运行时,除非静态方法以对象为准外,一律以引用为准。
三、instanceof关键字:用于判断对象的具体类型,只能用于引用数据类型判断。