インターフェース メソッドを実装するメソッドには をアノテーションする必要がありますか@Override
?
メソッド宣言がスーパークラスのメソッド宣言をオーバーライドすることを示します。メソッドにこの注釈タイプが付けられているが、スーパークラスのメソッドをオーバーライドしていない場合、コンパイラはエラー メッセージを生成する必要があります。
インターフェースは技術的にはスーパークラスではないと思います。 それともそうでしょうか?
ベストアンサー1
可能な限り使用してください@Override
。単純な間違いを防ぐことができます。例:
class C {
@Override
public boolean equals(SomeClass obj){
// code ...
}
}
これは適切にオーバーライドされていないためコンパイルされませんpublic boolean equals(Object obj)
。
インターフェースを実装するメソッド ( 1.6 以上のみ) やスーパークラスのメソッドをオーバーライドするメソッドにも同様が適用されます。