メソッドオーバーレイ:
これは単なる名前の問題ではなく、Java の基本的な機能です。
動的メソッドディスパッチの概念に基づいています。
動的メソッドディスパッチ:
これは、オーバーライド メソッドの呼び出しがコンパイル時ではなく実行時に解決されるメカニズムです。
Java でのポリモーフィズムの実装を許可します。
仕組み:
スーパークラス参照変数はサブクラス オブジェクトを参照できます。
オーバーライドされたメソッドがスーパークラス参照を通じて呼び出される場合、実行されるメソッドのバージョンは呼び出し時のオブジェクトの型に基づいて決定されます。
したがって、実行するメソッドの選択は実行時に行われます。
重要性:
参照されるオブジェクトの型 (参照変数の型ではない) によって、オーバーライドされたメソッドのどのバージョンが実行されるかが決まります。
これにより、スーパークラス参照変数によって参照されるさまざまなタイプのオブジェクトが、オーバーライドされたメソッドのさまざまなバージョンを呼び出すことができます。
プログラム構造:
スーパークラス: Sup、who() メソッドを使用します。
サブクラス: Sub1 と Sub2、両方とも who() メソッドをオーバーライドします。
main() での実行:
オブジェクト superOb (タイプ Sup)、subOb1 (タイプ Sub1)、および subOb2 (タイプ Sub2) の作成。
Sup 型の参照変数 supRef は、さまざまなオブジェクトを参照するために使用されます。
動作:
プログラム出力:
参照されるオブジェクトのタイプ (superOb、subOb1、または subOb2) に応じて、対応するバージョンの who() メソッドが呼び出され、表示されます。
これは動的ディスパッチの概念を示しており、実行されるメソッドが実行時に決定され、ポリモーフィズムの実装が可能になります。
以上が重複するメソッドはポリモーフィズムをサポートしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。