學習Java的同學注意了?。。?/span>
學習進程中遇到甚么問題或想獲得學習資源的話,歡迎加入Java學習交換群,群號碼:183993990 我們1起學Java!
Java中多態性的實現
甚么是多態
下面是多態存在的3個必要條件,要求大家做夢時都能背出來!
多態存在的3個必要條件
1、要有繼承;
2、要有重寫;
3、父類援用指向子類對象。
多態的好處:
1.可替換性(substitutability)。多態對已存在代碼具有可替換性。例如,多態對圓Circle類工作,對其他任何圓形幾何體,如圓環,也一樣工作。
2.可擴充性(extensibility)。多態對代碼具有可擴充性。增加新的子類不影響已存在類的多態性、繼承性,和其他特性的運行和操作。實際上新加子類更容易取得多態功能。例如,在實現了圓錐、半圓錐和半球體的多態基礎上,很容易增加球體類的多態性。
3.接口性(interface-ability)。多態是超類通過方法簽名,向子類提供了1個共同接口,由子類來完善或覆蓋它而實現的。如圖8.3 所示。圖中超類Shape規定了兩個實現多態的接口方法,computeArea()和computeVolume()。子類,如Circle和Sphere為了實現多態,完善或覆蓋這兩個接口方法。
4.靈活性(flexibility)。它在利用中體現了靈活多樣的操作,提高了使用效力。
5.簡化性(simplicity)。多態簡化對利用軟件的代碼編寫和修改進程,特別在處理大量對象的運算和操作時,這個特點尤其突出和重要。
Java中多態的實現方式:接口實現,繼承父類進行方法重寫,同1個類中進行方法重載。
1個小題目:
(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學習交換群,群號碼:183993990 我們1起學Java!