OpenJDK @Override缺少问题

时间:2014-07-15 11:28:00

标签: java override openjdk

在OpenJDK 1.7.0_45中是否有任何情况,Derived类会覆盖基类'方法,但没有@Override注释,并且在运行时,派生类的实例将调用基类'方法

class Base {
    public f() {
    }
}

class Derived {
    public f() {
    }
}

Derived类的方法不会调用基类的方法。

BTW,相同的代码在Oracle JDK1.7上运行良好。

2 个答案:

答案 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()。