首頁 >Java >Java基礎 >java中實作多態的方式

java中實作多態的方式

王林
王林原創
2019-11-11 15:23:315286瀏覽

java中實作多態的方式

Java中實作多態的方式:

1、介面實作;

2、繼承父類別進行方法重寫;

3、同一個類別中進行方法重載。

多態存在的必要條件:

1、要有繼承;

2、要有重寫;

# 3.父類別引用指向子類別物件。

多型態的好處:

1、可替換性(substitutability)。

多態對已存在程式碼具有可替換性。例如,多態對圓Circle類工作,對其他任何圓形幾何體,如圓環,也同樣工作。

2、可擴充性(extensibility)。

多態對程式碼具有可擴充性。增加新的子類別不會影響已存在類別的多態性、繼承性,以及其他特性的運作和操作。實際上新加子類別更容易獲得多型功能。例如,在實現了圓錐、半圓錐以及半球體的多態基礎上,很容易增添球體類的多態性。

3、介面性(interface-ability)。

多態是超類別透過方法簽名,向子類別提供了一個共同接口,由子類別來完善或覆寫它而實現的。如圖8.3 所示。圖中超類別Shape規定了兩個實作多態的介面方法,computeArea()以及computeVolume()。子類,如Circle和Sphere為了實現多態,完善或覆寫這兩個介面方法。

4、靈活性(flexibility)。

它在應用中體現了靈活多樣的操作,提高了使用效率。

5、簡化(simplicity)。

多態簡化對應用軟體的程式碼編寫和修改過程,尤其在處理大量物件的運算和操作時,這個特點尤其突出和重要。

多態實例:

(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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn