class b extends apublic string show(d obj)...
public string show(a obj)...
class c extends b{}public string show(b obj)...
public string show(a obj)...
class d extends b{}
class e
(三)答案public static void main(string args)
首先a1是乙個a類物件,當呼叫a1.show(b)方法時,我們發現a類中沒 有物件,所以這時可以呼叫a1.show(a)方法,列印出」a and a」,同理,a1.show(c)也是列印出」a and a」,對於a1.show(d),a中存在物件為d的show方法,所以直接呼叫,列印出」a and d」。① 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
b和a2大致相同,只是b所屬的類含有show(b b)方法。
按照this.show(o)->super(this).show(o)->this.(super(o))->super.this.(super(o))的順序來進行多型呼叫方法的排序
Java 多型的理解
物件導向程式設計有三個特徵,即封裝 繼承和多型。封裝隱藏了類的內部實現機制,從而可以在不影響使用者的前提下改變類的內部結構,同時保護了資料。繼承是為了重用父類 同時為實現多型性作準備。那麼什麼是多型呢?要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類cat,它繼承了animal類,那麼後者...
Java多型的理解
要想清楚的理解什麼是多型,就必須要了解 向上轉型 這個概念。下面我們通過乙個例子來介紹向上轉型。public class person protected void sleep public void play public class student extends person public c...
java多型的理解
class a public void show a obj class b extends a public void show a obj class c extends b class d extends b a a1 new a a a2 new b b b new b c c new c ...