当实现一个接口方法时,是否应该使用 @Override 标签?

3

如果我正在实现一个接口的方法,我应该加上 @Override 标签吗?我知道当你重写超类的方法时(不是接口),应该有 @Override 标签。但是实现接口的方法呢?


可能是重复的 - https://dev59.com/X3VC5IYBdhLWcg3wsTVi#212624 - jjnguy
1个回答

9

好的,是的:是的

You should use @Override whenever possible. It prevents simple mistakes from being made. Example:

@Override
public boolean equals(MyObject mObj){
    // code ...
}

This doesn't compile because it doesn't properly override equals.

The same will go for methods that implement an interface (1.6 and above only) or override a Super class's method.


但是为什么NetBeans IDE(现在是Eclipse Helios)会抱怨当我做这样的事情时:new Comparator<Obj>(){ @Override public int compare(Obj lhs, Obj rhs){ ..... } }IDE建议删除@ Override标记。 - dolaameng
@dolaa,你使用的Java版本是什么?1.5不允许像这样对接口实现进行注释。 - jjnguy
1
但是,如果您正在使用1.6版本,那么您绝对应该这样做。 - jjnguy
@dola,那样的话你就不能使用 @Override 注解了。 - jjnguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接