实现接口方法的方法应该用@Override进行注释吗?
Override注释的javadoc说:
指示方法声明要重写超类中的方法声明。如果使用此注释类型注释了方法,但没有重写超类方法,则需要编译器生成错误消息。
我不认为接口在技术上是超类。真的是这样吗?
问题阐述
实现接口方法的方法应该用@Override进行注释吗?
Override注释的javadoc说:
指示方法声明要重写超类中的方法声明。如果使用此注释类型注释了方法,但没有重写超类方法,则需要编译器生成错误消息。
我不认为接口在技术上是超类。真的是这样吗?
问题阐述
当前回答
对我来说,这通常是一些代码需要Java 6编译的唯一原因。不确定是否值得。
其他回答
我相信javac的行为已经改变了——在1.5版本中它禁止注释,而在1.6版本中则没有。注释提供了额外的编译时检查,所以如果您使用的是1.6,我会选择它。
对我来说,这通常是一些代码需要Java 6编译的唯一原因。不确定是否值得。
如果一个具体类没有覆盖一个抽象方法,使用@Override来实现是一个开放的问题,因为编译器总是会警告你任何未实现的方法。在这些情况下,可以提出这样的论点,即它降低了可读性——在代码中需要阅读的内容更多,而且在较小的程度上,它被称为@Override而不是@ implementation。
JDK 5.0不允许你在实现interface中声明的方法时使用@Override注释(它的编译错误),但JDK 6.0允许。所以你可以根据自己的需求来设置你的项目偏好。
重写从您自己的类继承的方法通常不会破坏使用ide进行重构。但是如果您重写从库继承的方法,建议使用它。如果你不这样做,你通常不会在以后的库更改中得到错误,而是一个隐藏得很好的bug。