我在一些计算机科学测试中看到了下一段,我希望我能在这里得到它的含义的一个很好的解释,因为我用谷歌搜索了一个小时,但找不到任何东西。
“当我们说 Java 语言有虚方法调用我们的意思是,在java应用程序中,执行的方法是由运行时的对象类型决定的”
这是什么意思?谁能更好地解释一下吗?
这些行的作者使用了 C++ 术语virtual
.
更好的术语是动态绑定/动态调度 http://en.wikipedia.org/wiki/Dynamic_dispatch.
这意味着物体是动态的type http://en.wikipedia.org/wiki/Datatype是“选择”将调用哪个方法,而不是静态类型。
例如:【伪代码】:
class A {
public void foo() { }
}
class B extends A {
public void foo() { }
}
调用时:
A obj = new B();
obj.foo();
B.foo()
将被调用,而不是A.foo()
,由于动态类型obj
is B
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)