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