インターフェースのメソッド実装を@Overrideすべきでしょうか? 質問する

インターフェースのメソッド実装を@Overrideすべきでしょうか? 質問する

インターフェース メソッドを実装するメソッドには をアノテーションする必要がありますか@Override?

Override注釈のJavadoc言う:

メソッド宣言がスーパークラスのメソッド宣言をオーバーライドすることを示します。メソッドにこの注釈タイプが付けられているが、スーパークラスのメソッドをオーバーライドしていない場合、コンパイラはエラー メッセージを生成する必要があります。

インターフェースは技術的にはスーパークラスではないと思います。 それともそうでしょうか?

Question Elaboration

ベストアンサー1

可能な限り使用してください@Override。単純な間違いを防ぐことができます。例:

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

これは適切にオーバーライドされていないためコンパイルされませんpublic boolean equals(Object obj)

インターフェースを実装するメソッド ( 1.6 以上のみ) やスーパークラスのメソッドをオーバーライドするメソッドにも同様が適用されます。

おすすめ記事