まず最初に、@Override の一般的な機能について説明します:
1. 親クラスの既存のメソッドを正しくオーバーライドしたかどうかを自分で確認してください。 ;
2. コードを読む人に、これが書き換え方法であることを伝えます。
例:
たとえば、基本クラスができました:
(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)
次に、Apple サブクラスを作成し、この基本クラスを継承し、基本クラスの show_name() メソッドをオーバーライドします。
実行の結果、「Apple:2」という文字が出力されます。
実際、親クラスのメソッドを手動でオーバーライドする場合、メソッドのパラメータを間違って覚えてしまうことがよくあります。この時点で @Override を追加しない場合、エディターは次のプロンプトを表示しません。たとえば、このタグを追加しない場合は、パラメータを float 型に静かに変更します。
このとき、実際には意図通りにメソッドをオーバーライドできず、隠れたバグが生まれていました。逆に、Override を追加した効果は
IDE は、上書き方法が失敗したことを示すエラー メッセージを表示しました。
これは、メソッドをオーバーライドする準備をしたときに起こることがよくありますが、逆に、メソッドをオーバーロードしてしまいます。
別の例: ここで、Fruit クラスにプライベート メソッドを追加し、Apple でそれをオーバーライドしようとします
@Override private void grow(){ }
結果として、コンパイラはエラーを要求します。これは非常に低いレベルです。 -level エラーがありますが、この時点では見つかりません。つまり、プライベート メソッドをオーバーライドしようとしますが、Override タグを削除すると、コンパイラはエラーを報告せず、実行できます。
実際、Apple でのいわゆる「grow you override」は、Apple 自体のプライベート メソッドにすぎません。全く新しいアプローチ。
ここで、「レプリケーションとは何ですか?」という疑問が生じます。
オブジェクト指向では、オーバーライドできるのはインターフェース、共有メソッド、継承メソッドのみで、プライベートメソッドはオーバーライドできないのですが、よくよく考えてみると、オーバーライドできないのではなく、プライベート メソッドの概念! オーバーライドはまったくありません。
これはオブジェクト指向設計の本来の目的であり、プライベート メソッド自体はクラス内にカプセル化され、他の人によって変更されたり、外部から参照されたりすることはありません。
推奨チュートリアル: java エントリー プログラム
以上がJavaの@Overrideは何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。