ホームページ  >  記事  >  Java  >  Javaの@Overrideは何をするのでしょうか?

Javaの@Overrideは何をするのでしょうか?

王林
王林転載
2020-06-15 16:17:235155ブラウズ

Javaの@Overrideは何をするのでしょうか?

まず最初に、@Override の一般的な機能について説明します:

1. 親クラスの既存のメソッドを正しくオーバーライドしたかどうかを自分で確認してください。 ;

2. コードを読む人に、これが書き換え方法であることを伝えます。

例:

たとえば、基本クラスができました:

Javaの@Overrideは何をするのでしょうか?

(ビデオ チュートリアルの推奨: java ビデオ チュートリアル)

次に、Apple サブクラスを作成し、この基本クラスを継承し、基本クラスの show_name() メソッドをオーバーライドします。

Javaの@Overrideは何をするのでしょうか?

実行の結果、「Apple:2」という文字が出力されます。

実際、親クラスのメソッドを手動でオーバーライドする場合、メソッドのパラメータを間違って覚えてしまうことがよくあります。この時点で @Override を追加しない場合、エディターは次のプロンプトを表示しません。たとえば、このタグを追加しない場合は、パラメータを float 型に静かに変更します。

Javaの@Overrideは何をするのでしょうか?

このとき、実際には意図通りにメソッドをオーバーライドできず、隠れたバグが生まれていました。逆に、Override を追加した効果は

Javaの@Overrideは何をするのでしょうか?

IDE は、上書き方法が失敗したことを示すエラー メッセージを表示しました。

これは、メソッドをオーバーライドする準備をしたときに起こることがよくありますが、逆に、メソッドをオーバーロードしてしまいます。

別の例: ここで、Fruit クラスにプライベート メソッドを追加し、Apple でそれをオーバーライドしようとします

 @Override
    private void grow(){
    }

結果として、コンパイラはエラーを要求します。これは非常に低いレベルです。 -level エラーがありますが、この時点では見つかりません。つまり、プライベート メソッドをオーバーライドしようとしますが、Override タグを削除すると、コンパイラはエラーを報告せず、実行できます。

実際、Apple でのいわゆる「grow you override」は、Apple 自体のプライベート メソッドにすぎません。全く新しいアプローチ。

ここで、「レプリケーションとは何ですか?」という疑問が生じます。

オブジェクト指向では、オーバーライドできるのはインターフェース、共有メソッド、継承メソッドのみで、プライベートメソッドはオーバーライドできないのですが、よくよく考えてみると、オーバーライドできないのではなく、プライベート メソッドの概念! オーバーライドはまったくありません。

これはオブジェクト指向設計の本来の目的であり、プライベート メソッド自体はクラス内にカプセル化され、他の人によって変更されたり、外部から参照されたりすることはありません。

推奨チュートリアル: java エントリー プログラム

以上がJavaの@Overrideは何をするのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。