java多型的理解

2021-07-27 18:55:58 字數 837 閱讀 2643

public string show(d obj)...

public string show(a obj)...

class b extends a

public string show(b obj)...

public string show(a obj)...

class c extends b{}

class d extends b{}

class e

public static void main(string  args)

(三)答案

①   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

首先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」。

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 ...