1. ホーム
  2. java

オーバーライドとは何ですか?

2023-12-02 07:04:50

質問

public class NaiveAlien extends Alien
{

    @Override
    public void harvest(){}

}

私は友人のコードを理解しようとしていた、私はコードの中で構文、@Overrideを得ることはありません。これは何をするもので、なぜコーディングに必要なのでしょうか? ありがとうございます。

どのように解決するのですか?

親クラス(Java 6ではインターフェース)のメソッドをオーバーライドしていることをコンパイラに知らせるためのヒントです。

コンパイラは、オーバーライドする関数がないことを検出すると、警告(またはエラー)を出します。

これは、タイプミスやAPIの変更を素早く特定するのに非常に便利です。例えば、親クラスのメソッドをオーバーライドしようとしているとします。 harvest() と入力しているのに、そのスペルは harvset() と書くと、プログラムは黙って基底クラスを呼び出します。 @Override がなければ、それに関する警告は表示されないでしょう。

同様に、ライブラリを使っていて、そのライブラリのバージョン2であれば harvest() が整数のパラメータを取るように変更された場合、もはやそれを上書きすることはできません。もう一度言います。 @Override はすぐに教えてくれるでしょう。