Java 1.6中的@Override注释有什么意义

时间:2012-10-08 09:54:09

标签: java override

  

可能重复:
  When do you use Java's @Override annotation and why?

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

简单地覆盖方法和覆盖方法+用@override注释它之间的区别是什么?

3 个答案:

答案 0 :(得分:4)

引用@Override JavaDoc:

  

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

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

干杯,

答案 1 :(得分:2)

关键是如果你没有真正重写方法,就会发出错误。

例如,你有

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

扩展时可能会出错

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

现在你相信你已经重新实现了超类方法,但你刚刚添加了一个新方法。

在方法声明之前添加@Override并显示错误,因此您知道有错误。

答案 2 :(得分:1)

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

如果遇到问题,建议您在父类中进行许多不兼容的更改(不让IDE为您执行此操作),或者您正在使用Java 5.0编译代码,如果您要实现,则不允许使用此注释界面。