Java ポリモーフィズムの理解

巴扎黑
リリース: 2017-06-23 16:36:53
オリジナル
1779 人が閲覧しました

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

ポリモーフィズムとは

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

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

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

  4. ポリモーフィズムの役割: 型間の結合関係を排除する

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

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

ポリモーフィズムの存在に必要な 3 つの条件
1. 継承が存在する必要があります。
3. 親クラスの参照が子クラスのオブジェクトを指している必要があります。

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

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

2. 拡張性。ポリモーフィズムによりコードが拡張可能になります。新しいサブクラスを追加しても、ポリモーフィズム、継承、および既存のクラスの他の機能の操作や操作には影響しません。実際、新しいサブクラスを追加して多態性関数を取得する方が簡単です。たとえば、円錐、半円錐、半球の多態性を実現した後、球クラスの多態性を追加するのは簡単です。
3. インターフェース能力。ポリモーフィズムは、スーパークラスがメソッド シグネチャを通じてサブクラスに共通のインターフェイスを提供し、サブクラスがそれを完了またはオーバーライドすることによって実現されます。図 8.3 に示すように。図のスーパー クラス Shape は、ポリモーフィズムを実装する 2 つのインターフェイス メソッド、computeArea() と computeVolume() を指定します。 Circle や Sphere などのサブクラスは、ポリモーフィズムを実現するために、これら 2 つのインターフェイス メソッドを改善またはオーバーライドします。
4. 柔軟性。柔軟で多様な運用をアプリケーションに実現し、利用効率を向上させます。
5. シンプルさ。ポリモーフィズムは、アプリケーション ソフトウェアのコード作成および変更プロセスを簡素化します。この機能は、多数のオブジェクトの計算や操作を扱う場合に特に顕著で重要です。

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

小さな質問:

(1) 関連カテゴリ

Java ポリモーフィズムの理解
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...{}
ログイン後にコピー
Java ポリモーフィズムの理解

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

Java ポリモーフィズムの理解
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));    ⑨
ログイン後にコピー
Java ポリモーフィズムの理解

(3) Answer

Java ポリモーフィズムの理解
①   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 ポリモーフィズムの理解

Javaを学習している学生の皆さん、注意してください! ! !
学習プロセス中に問題が発生した場合、または学習リソースを入手したい場合は、Java 学習交換グループ (159610322) に参加してください。一緒に Java を学びましょう!

以上がJava ポリモーフィズムの理解の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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