看起来开放JDK 8 http://hg.openjdk.java.net/jdk8/jdk8/hotspot/file/87ee5ee27509/src/share/vm/oops/klassVtable.cpp#l575放置非私有方法final
nor static
进入虚函数表。为什么当动态绑定不用于私有方法时会出现这种情况(因为它们是用调用特殊 http://docs.oracle.com/javase/specs/jvms/se8/html/jvms-6.html#jvms-6.5.invokespecial)或者是否被使用?
这样做是为了处理一些罕见的情况,即超类中存在具有相同名称和签名的可重写方法。尽管肯定还有需要改进的地方,但可能是针对 JDK 9 的。
See https://bugs.openjdk.java.net/browse/JDK-8024368 https://bugs.openjdk.java.net/browse/JDK-8024368
私有方法总是获得一个 vtable 条目来向后处理
与类的兼容性 - 即你可以有相同的名称
类的本地私有方法,并且还继承 from 的方法
你的超类,它将围绕私有方法继承,
由你的孩子。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)