在java中,如果调用不被任何子类继承的方法,则使用动态绑定还是静态绑定



在java中,如果一个方法没有被任何子类继承,是使用动态绑定还是静态绑定?

我知道在这种特殊情况下,它不会对输出产生任何影响,但我只是想知道这个。

除非类或方法被标记为final,否则它可能被类装入器在运行时引入的新类型覆盖。从这个意义上说,它们仍然是"动态的"。

在运行时,JVM知道所有加载的类,以及一个方法是否被覆盖;方法上的final修饰符对JVM没有影响。

有了这些知识,JVM将优化对未被覆盖的方法的调用;从这个意义上说,绑定是"静态的"。

Java中的实例方法调用总是使用动态绑定。静态方法和直接访问私有成员使用静态绑定。

长度:http://geekexplains.blogspot.com/2008/06/dynamic-binding-vs-static-binding-in.html

相关内容

  • 没有找到相关文章

最新更新