ホームページ > Java > &#&チュートリアル > Java でのポリモーフィズムの実装例

Java でのポリモーフィズムの実装例

黄舟
リリース: 2017-09-21 10:04:33
オリジナル
1794 人が閲覧しました

この記事では主にJavaにおけるポリモーフィズムの実装について紹介します。簡単な質問は、一定の参考値を持つ Java ポリモーフィズムを理解するのに役立ちます。興味のある方は、

ポリモーフィズムとは

  • オブジェクト指向の 3 つの主要な特徴: カプセル化と継承、ポリモーフィズムを参照してください。ある観点から見ると、カプセル化と継承は、ほとんどの場合ポリモーフィズムに備えて準備されています。これが最後の概念であり、最も重要な知識ポイントです。

  • ポリモーフィズムの定義: 異なるタイプのオブジェクトが同じメッセージに応答できるようにすることを指します。つまり、同じメッセージでも、送信先によってさまざまな動作をする可能性があります。 (メッセージの送信は関数呼び出しです)

  • ポリモーフィズムを実現する技術はダイナミックバインディング(動的バインディング)と呼ばれるもので、実行時に参照先のオブジェクトの実際の型を判断し、その実際の型に応じて対応するメソッドを呼び出すことを指します。タイプ。 。

  • ポリモーフィズムの役割: 型間の結合関係を排除します。

  • 実際には、ポリモーフィズムの例は無数にあります。たとえば、F1 キーを押すと、AS 3 ヘルプ ドキュメントが Flash インターフェイスの下に表示され、Word ヘルプが Word の下に表示され、Windows ヘルプとサポートが Windows の下に表示されます。異なるオブジェクトで同じイベントが発生すると、異なる結果が生じます。

多態性が存在するために必要な3つの条件は、夢を見るときに皆さんに唱えてください。

ポリモーフィズムの存在に必要な 3 つの条件

1. 継承が必要です。
2. 親クラスの参照が子クラスのオブジェクトを指している必要があります。

ポリモーフィズムの利点:

1.ポリモーフィズムにより、既存のコードの置き換えが可能になります。たとえば、ポリモーフィズムは Circle クラスで機能しますが、トーラスなどの他の円形ジオメトリでも機能します。


2. 拡張性。ポリモーフィズムによりコードが拡張可能になります。新しいサブクラスを追加しても、ポリモーフィズム、継承、および既存のクラスの他の機能の操作や操作には影響しません。実際、新しいサブクラスを追加して多態性関数を取得する方が簡単です。たとえば、円錐、半円錐、半球の多態性を実現した後、球クラスの多態性を追加するのは簡単です。


3. インターフェース能力。ポリモーフィズムは、スーパークラスがメソッド シグネチャを通じてサブクラスに共通のインターフェイスを提供し、サブクラスがそれを完了またはオーバーライドすることによって実現されます。図 8.3 に示すように。図のスーパー クラス Shape は、ポリモーフィズムを実装する 2 つのインターフェイス メソッド、computeArea() と computeVolume() を指定します。 Circle や Sphere などのサブクラスは、ポリモーフィズムを実現するために、これら 2 つのインターフェイス メソッドを改善またはオーバーライドします。


4. 柔軟性。柔軟で多様な運用をアプリケーションに実現し、利用効率を向上させます。


5. シンプルさ。ポリモーフィズムは、アプリケーション ソフトウェアのコード作成および変更プロセスを簡素化します。この機能は、多数のオブジェクトの計算や操作を扱う場合に特に顕著で重要です。

Javaにおけるポリモーフィズムの実装方法:インターフェースの実装、メソッド書き換えのための親クラスの継承、同一クラス内でのメソッドのオーバーロード。

小さな質問:

(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...{}
ログイン後にコピー

(2) 質問: 次の出力結果は何ですか?


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)); ⑨
ログイン後にコピー

(3) 回答


① 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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート