ホームページ  >  記事  >  Java  >  Javaでポリモーフィズムを実装する方法

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

王林
王林オリジナル
2019-11-11 15:23:315226ブラウズ

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。