多态中成员函数特点:Fu f = newZi();
编译时期,参阅引用型变量所属的类中是否有调用的方法,如果有,编译通过,没有则编译失败。简单总结就是编译看左,运行看右(是否重写父类的方法)。
成员变量的 特点:无论编译和运行,都参考左边(引用型变量所属的类),
静态成员函数的特点:无论编译和运行,都参考左边。
多说几句:
编译时期吧 就看它 你调用的方法在不在那个类中;而在运行时期,其实是虚拟机的“动态绑定”在起作用,即在多态的情况下,虚拟机可以找到所运行对象的真正类型。注意:动态绑定针对的只是对象的方法。属性还是父类的。
在处理Java类中的成员变量时,并不是采用运行时绑定,而是一般意义上的静态绑定。所以在向上转型的情况下,对象的方法可以“找到”子类,而对象的属性 还是父类的属性。
而静态成员函数也是静态绑定的。
|