@Override导致涉及接口,抽象类和具体类的类层次结构的问题

Nay*_*ayn 1 java

我的课程如下

public interface A {
    public void doSomething();
}
public abstract class B implements A {
    public void doOneMoreThing() {
        // Do one more thing
    }
}
public class C extends B {
    @Override                <---- Causes error
    public void doSomething() {
        // Do something
    }
}
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我,为什么这个@Override注释会导致错误?

谢谢Nayn

mdm*_*dma 5

检查您是否使用JDK 1.6,并将-source和-target参数(如果已定义)设置为1.6.@Override的语义在Java 6中已更改.在Java 5中,不允许@Override覆盖接口方法(仅限超类方法),但在Java 6(以及最新版本的JDK 5,从u21开始)中允许使用@Override

请参阅为什么javac在@Override注释上失败