出力は次のとおりです。
こちらはBです
これはCです
上記の例では、クラス B とクラス C は、InterA インターフェイスを実装する 2 つのクラスです。これらは、それぞれ、クラス B とクラス C のインスタンスをインターフェイス参照 a に割り当てることにより、インターフェイスのメソッド fun() を実装します。バインディングは「1 つのインターフェイス、複数のメソッド」を最大限に活用して、Java の動的ポリモーフィズムを実証します。
注意すべき点の 1 つは、Java がインターフェース変数を使用してその実装クラスのオブジェクトのメソッドを呼び出す場合、そのメソッドがインターフェース内で宣言されている必要があり、インターフェースの実装クラス内の実装メソッドの型とパラメーターが宣言されている必要があることです。定義された完全一致と同じである必要があります。
結論: 上記は Java ランタイム ポリモーフィズムの実装方法であり、プログラミング プロセス中に柔軟に使用できます。ただし、結局のところ、Java のランタイム動的メソッド呼び出しを比較する場合、ランタイム ポリモーフィズムの使用は推奨されません。通常のメソッド呼び出しのシステムオーバーヘッドは比較的大きくなります。