Java @Overrideアノテーション

1. 概要

このクイックチュートリアルでは、_ @ Override_アノテーションの使用方法について説明します。

2. _ @ Override_アノテーション

サブクラスでは、次のようにリンクできます:/ java-classes-initialization-questions [オーバーライドまたはオーバーロード]インスタンスメソッド。 オーバーライドは、サブクラスが継承された動作を置き換えていることを示します。 オーバーロードとは、サブクラスが新しい動作を追加することです。
実際にオーバーライドしようとしたときに、偶然にオーバーロードすることがあります。 Javaでこの間違いを犯すのは簡単です。
public class Machine {
    public boolean equals(Machine obj) {
        return true;
    }

    @Test
    public void whenTwoDifferentMachines_thenReturnTrue() {
        Object first = new Machine();
        Object second = new Machine();
        assertTrue(first.equals(second));
    }
}
驚くべきことに、上記のテストは失敗します。 これは、この_equals_メソッドが_Object#equals_をオーバーロードしており、オーバーライドしていないためです。
*継承されたメソッドで_ @ Override_アノテーションを使用して、この間違いから保護できます。*
この例では、_equals_メソッドの上に_ @ Override_アノテーションを追加できます。
@Override
public boolean equals(Machine obj) {
    return true;
}
この時点で、コンパイラはエラーを発生させ、私たちが考えているように_equals_をオーバーライドしていないことを通知します。
その後、間違いを修正できます。
@Override
public boolean equals(Object obj) {
    return true;
}
誤ってオーバーロードするのは簡単であるため、*継承されたすべてのメソッドで_ @ Override_アノテーションを使用することが一般的な推奨事項です*。

3. 結論

このガイドでは、Javaで@Overrideアノテーションがどのように機能するかを説明しました。
サンプルの完全なソースコードは、https://github.com/eugenp/tutorials/tree/master/core-java-modules/core-java-annotations [GitHub上]にあります。