この記事では主にJavaにおけるポリモーフィズムの実装について紹介します。簡単な質問は、一定の参考値を持つ Java ポリモーフィズムを理解するのに役立ちます。興味のある方は、
ポリモーフィズムとは
オブジェクト指向の 3 つの主要な特徴: カプセル化と継承、ポリモーフィズムを参照してください。ある観点から見ると、カプセル化と継承は、ほとんどの場合ポリモーフィズムに備えて準備されています。これが最後の概念であり、最も重要な知識ポイントです。
ポリモーフィズムの定義: 異なるタイプのオブジェクトが同じメッセージに応答できるようにすることを指します。つまり、同じメッセージでも、送信先によってさまざまな動作をする可能性があります。 (メッセージの送信は関数呼び出しです)
ポリモーフィズムを実現する技術はダイナミックバインディング(動的バインディング)と呼ばれるもので、実行時に参照先のオブジェクトの実際の型を判断し、その実際の型に応じて対応するメソッドを呼び出すことを指します。タイプ。 。
ポリモーフィズムの役割: 型間の結合関係を排除します。
実際には、ポリモーフィズムの例は無数にあります。たとえば、F1 キーを押すと、AS 3 ヘルプ ドキュメントが Flash インターフェイスの下に表示され、Word ヘルプが Word の下に表示され、Windows ヘルプとサポートが Windows の下に表示されます。異なるオブジェクトで同じイベントが発生すると、異なる結果が生じます。
多態性が存在するために必要な3つの条件は、夢を見るときに皆さんに唱えてください。
ポリモーフィズムの存在に必要な 3 つの条件
1. 継承が必要です。
2. 親クラスの参照が子クラスのオブジェクトを指している必要があります。
ポリモーフィズムの利点:
1.ポリモーフィズムにより、既存のコードの置き換えが可能になります。たとえば、ポリモーフィズムは Circle クラスで機能しますが、トーラスなどの他の円形ジオメトリでも機能します。小さな質問:
(1) 関連クラスclass A ...{ public String show(D obj)...{ return ("A and D"); } public String show(A obj)...{ return ("A and A"); } } class B extends A...{ public String show(B obj)...{ return ("B and B"); } public String show(A obj)...{ return ("B and A"); } } class C extends B...{} class D extends B...{}
A a1 = new A(); A a2 = new B(); B b = new B(); C c = new C(); D d = new D(); System.out.println(a1.show(b)); ① System.out.println(a1.show(c)); ② System.out.println(a1.show(d)); ③ System.out.println(a2.show(b)); ④ System.out.println(a2.show(c)); ⑤ System.out.println(a2.show(d)); ⑥ System.out.println(b.show(b)); ⑦ System.out.println(b.show(c)); ⑧ System.out.println(b.show(d)); ⑨
① A and A ② A and A ③ A and D ④ B and A ⑤ B and A ⑥ A and D ⑦ B and B ⑧ B and B ⑨ A and D
以上がJava でのポリモーフィズムの実装例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。