public class NaiveAlien extends Alien
{
@Override
public void harvest(){}
}
友人のコードを理解しようとしたのですが、コード内の @Override という構文がわかりません。これは何をするもので、なぜコーディングに必要なのでしょうか? ありがとうございます。
ベストアンサー1
これは、親クラス (または Java 6 ではインターフェース) のメソッドをオーバーライドしていることをコンパイラーに知らせるためのヒントです。
コンパイラはオーバーライドする関数がないことを検出すると、警告 (またはエラー) を表示します。
これは、タイプミスや API の変更をすばやく特定するのに非常に便利です。親クラスの メソッドをオーバーライドしようとしているharvest()
が、 と入力するとharvset()
、プログラムは暗黙的に基本クラスを呼び出しますが、 がなければ@Override
、それに関する警告は表示されません。
同様に、ライブラリを使用していて、ライブラリのバージョン 2 でharvest()
整数パラメータを取るように変更されている場合、それをオーバーライドすることはできなくなります。この場合も、@Override
すぐに通知されます。