2

可能重复:
您何时使用 Java 的 @Override 注释,为什么?

由于此注释,我一直遇到不兼容问题。无论如何,拥有它有什么意义?

简单地覆盖一个方法和覆盖一个方法+用@override注释它有什么区别?

4

3 回答 3

4

引用@OverrideJavaDoc:

如果使用此注解类型对方法进行注解但未覆盖超类方法,则编译器需要生成错误消息。

所以一个好的答案是“在编译时防止潜在的运行时错误”:-)

干杯,

于 2012-10-08T09:56:18.843 回答
2

如果您没有真正覆盖方法,那么关键是启动错误。

例如,您有

public class SuperClass {
  public void doSomething(int a) {
  }
}

扩展时可能会出错

public class SubClass {
  public void doSomething(String a) {
  }
}

现在您是否相信您已经重新实现了超类方法,但您只是添加了一个新方法。

在方法声明之前添加@Override,会显示错误,所以你知道有问题。

于 2012-10-08T09:57:02.887 回答
1

它清楚地表明方法应该覆盖父方法。

如果您遇到问题,这表明您在父类中进行了许多不兼容的更改(没有让您的 IDE 为您执行此操作),或者您正在使用 Java 5.0 编译代码,如果您正在实现接口,则不允许使用此注释。

于 2012-10-08T09:56:39.203 回答