1,成员变量。
编译时:参考引用型变量所属的类中的是否有调用的成员变量,有,编译通过,没有,编译失败。
运行时:参考引用型变量所属的类中的是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:编译和运行都参考等号的左边。
作为了解,一般用不着。面试用。
***注意:覆盖只发生在函数中,变量不存在覆盖。
2,***成员函数(非静态)。***
编译时:参考引用型变量所属的类中的是否有调用的函数。有,编译通过,没有,编译失败。
运行时:参考的是对象所属的类中是否有调用的函数。
简单说:编译看左边,运行看右边。(***先找子类,如果子类没有,再找父类)
因为成员函数存在覆盖特性。
3,静态函数。
编译时:参考引用型变量所属的类中的是否有调用的静态方法。
运行时:参考引用型变量所属的类中的是否有调用的静态方法。
简单说,编译和运行都看左边。(静态方法直接看哪个类调用的就好了,不存在覆盖。)
其实对于静态方法,是不需要对象的。直接用类名调用即可。