在java中,如果一个方法没有被任何子类继承,是使用动态绑定还是静态绑定?
我知道在这种特殊情况下,它不会对输出产生任何影响,但我只是想知道这个。
除非类或方法被标记为final
,否则它可能被类装入器在运行时引入的新类型覆盖。从这个意义上说,它们仍然是"动态的"。
在运行时,JVM知道所有加载的类,以及一个方法是否被覆盖;方法上的final
修饰符对JVM没有影响。
Java中的实例方法调用总是使用动态绑定。静态方法和直接访问私有成员使用静态绑定。
长度:http://geekexplains.blogspot.com/2008/06/dynamic-binding-vs-static-binding-in.html