#ポリモーフィズムとは何ですか?
ポリモーフィズムとは、参照変数がどのクラス インスタンス オブジェクトを指すかを指します。参照変数によって発行されるメソッド呼び出しは、どのクラスに実装されるメソッドです。これは、プログラムの実行中に決定する必要があります。 。 特定のクラスはプログラムの実行時に決定されるため、ソース プログラム コードを変更せずに参照変数をさまざまなクラス実装にバインドでき、その結果、参照によって呼び出される特定のメソッドが変更されます。この変更は、次のことを意味します。実行時にプログラムにバインドされている特定のコードは、プログラム コードを変更せずに変更できるため、プログラムは複数の実行状態を選択できます。これがポリモーフィズムです。 (無料のオンライン学習ビデオ チュートリアルの共有:java online learning)
機能:
は、次の親クラスを指します。サブクラス 参照は上方変換されるため、親クラスが所有するメソッドとプロパティにのみアクセスできます。サブクラスに存在するが親クラスに存在しないメソッドについては、メソッドがオーバーロードされていても参照は使用できません。 サブクラスが親クラスの一部のメソッドをオーバーライドする場合、これらのメソッドを呼び出すときは、サブクラスで定義されたメソッドを使用する必要があります (動的接続、動的呼び出し)。Java がポリモーフィズムを実現するには、継承、書き換え、上方変換という 3 つの条件が必要です。
呼び出される優先度メソッド、優先度は次のとおりです: this.show(O)、super.show(O)、this.show((super)O)、super.show((super )O )。ポリモーフィズムの実装原理
Java におけるオブジェクト メソッドの呼び出しは、クラス情報内のメソッド テーブルに依存して実装されます。 一般に、オブジェクトのメソッドが呼び出されるとき、JVM はオブジェクト クラスのメソッド テーブルを検索してメソッドの直接参照アドレスを決定し、アドレスを取得した後でのみ実際にメソッドを呼び出します。 。 スーパー クラスは親クラスのメソッドを継承します。メソッドがオーバーライドされていない場合、呼び出しは親クラスのメソッドを指します。このメソッドをオーバーライドすると、クラスのコード領域を指しますが、スーパークラスは親クラスのメソッドテーブルを持つことになります。 Java プログラムの実行中、クラス関連の情報がメソッド領域に配置されることはわかっています。この情報の中には、メソッド テーブルと呼ばれる領域があります。このテーブルには、型とメソッドによって定義されたすべてのメソッドに関する情報が含まれています。これらへのポインタ メソッドの実際のコードへのポインタ。 図に示すように:以上がJavaのポリモーフィズムの原理は何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。