オーバーライドとは何ですか?
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
はすぐに教えてくれるでしょう。
関連
-
実行中にEclipseがポップアップする A Java Exception has occurred
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] なぜゲッターとセッター/アクセッサーを使うのですか?
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み] EqualsメソッドがオーバーライドされたときにGetHashCodeをオーバーライドすることが重要な理由は何ですか?
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] シンクロナイズド」とはどういう意味ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Solve モジュールのビルドに失敗しました。Error: ENOENT: no such file or directory エラー
-
StringBuilderが投げるArrayIndexOutOfBoundsExceptionの探索
-
Uncaught ReferenceError: は定義されていません。
-
unsigned char* から const jbyte* {aka const signed char*} への変換が無効です。
-
Javaジェネリックを1つの記事で
-
BindException: アドレスはすでに使用中です:バインドエラー解決
-
FindBugの使用概要
-
Javaがリソースリークに遭遇した:'input'が閉じない 解決方法
-
eclipse 実行 Java、エラー: 選択を起動できず、レシーバーもありません。
-
1分でわかる!恋人の写真をIDEAの背景画像に設定する方法【おすすめ集