由于此注释,我一直遇到不兼容问题。无论如何,拥有它有什么意义?
简单地覆盖一个方法和覆盖一个方法+用@override注释它有什么区别?
由于此注释,我一直遇到不兼容问题。无论如何,拥有它有什么意义?
简单地覆盖一个方法和覆盖一个方法+用@override注释它有什么区别?
引用@Override
JavaDoc:
如果使用此注解类型对方法进行注解但未覆盖超类方法,则编译器需要生成错误消息。
所以一个好的答案是“在编译时防止潜在的运行时错误”:-)
干杯,
如果您没有真正覆盖方法,那么关键是启动错误。
例如,您有
public class SuperClass {
public void doSomething(int a) {
}
}
扩展时可能会出错
public class SubClass {
public void doSomething(String a) {
}
}
现在您是否相信您已经重新实现了超类方法,但您只是添加了一个新方法。
在方法声明之前添加@Override
,会显示错误,所以你知道有问题。
它清楚地表明方法应该覆盖父方法。
如果您遇到问题,这表明您在父类中进行了许多不兼容的更改(没有让您的 IDE 为您执行此操作),或者您正在使用 Java 5.0 编译代码,如果您正在实现接口,则不允许使用此注释。