在OpenJDK 1.7.0_45中是否有任何情况,Derived类会覆盖基类'方法,但没有@Override注释,并且在运行时,派生类的实例将调用基类'方法
class Base {
public f() {
}
}
class Derived {
public f() {
}
}
Derived类的方法不会调用基类的方法。
BTW,相同的代码在Oracle JDK1.7上运行良好。
答案 0 :(得分:1)
不,你可以see in the Javadocs,@ Override有SOURCE保留,只能用作编译时保护。字节码不会有任何不同。另请参阅How to identify override method in Java byte code?
答案 1 :(得分:0)
我不确定我是否正确理解了这个问题,但是override-annotation并不控制在运行时调用哪个方法。 所以你肯定可以调用baseclass-method。只需调用super.f()。