我们应该@Override接口的方法实现吗?

2022-08-31 04:27:05

实现接口方法的方法是否应使用 ?@Override

Override 注释的 javadoc 说:

指示方法声明旨在重写超类中的方法声明。如果某个方法使用此批注类型进行批注,但不重写超类方法,则编译器需要生成错误消息。

我不认为接口在技术上是一个超类。还是?

Question Elaboration


答案 1

应尽可能使用@Override。它可以防止犯简单的错误。例:

class C {
    @Override
    public boolean equals(SomeClass obj){
        // code ...
    }
}

这不会编译,因为它没有正确覆盖公共布尔等于(Object obj)。

实现接口(仅限 1.6 及更高版本)或重写 Super 类的方法也是如此。


答案 2

我相信javac的行为已经改变 - 在1.5中,它禁止注释,而在1.6中,它没有。注释提供了额外的编译时检查,所以如果你使用的是1.6,我会选择它。