Javaでポリモーフィズムを実装する方法

王林
リリース: 2019-11-11 15:23:31
オリジナル
5150 人が閲覧しました

Javaでポリモーフィズムを実装する方法

Java でポリモーフィズムを実装する方法:

1. インターフェイスの実装;

2. 親クラス メソッドの継承 Rewrite;

3. 同じクラス内のメソッドのオーバーロード。

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

1. 継承が必要;

2. オーバーライドが必要;

3. 親クラス参照はサブクラス オブジェクトを指します。

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

1. 置換可能性。

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

2. 拡張性。

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

3. インターフェース能力。

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

4. 柔軟性。

柔軟で多様な操作をアプリケーションに具現化し、利用効率を向上させます。

5. シンプルさ。

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

多態性の例:

(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 チュートリアル

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

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