對多型的理解例子

2022-03-25 14:28:15 字數 911 閱讀 4075

public class a

public string show(a obj)  

}class b extends a

public string show(a obj) 

}class c extends b

class d extends b

public class testa

輸出結果為

1--a and a

2--a and a

3--a and d

4--b and a

5--b and a

6--a and d

7--b and b

8--b and b

9--a and d

解析:①,②,③呼叫a1.show()方法,a1 屬於a類,a類有兩個方法show(d obj)和show(a obj)。①a1.show(b),引數b為a類的子類物件,這裡為向上轉型,相當於a obj=b;所以呼叫show(a obj)方法,得到a and a結果。②同理,③引數為d,呼叫show(d obj),得到a and d。

④,⑤,⑥呼叫a2.show()方法,a a2 = new b();是向上轉型,所以對a2方法的呼叫,使用a1類的方法show(d obj)和show(a obj),但此時show(a obj)已經被重寫為return ("b and a"), ④a2.show(b),呼叫show(a obj),得到b and a。⑤同理,⑥呼叫show(d obj),得到a and d。

⑦,⑧,⑨呼叫b.show()方法,b為b類,b類的show方法有繼承的show(d obj),自己的兩個show(b obj)、show(a obj)。

⑦呼叫show(b obj),得到b and b,⑧向上轉型,呼叫show(b obj),得到b and b⑨show(d obj),得到a and d

對多型的理解

子類和父類彙總起來就可以成為多型。例如 父類a有乙個public許可權的方法method 子類a1,a2對該方法進行重寫 a a new a1 a a new a2 a a new a a是呼叫子類a1 a2 父類a的method方法。向上轉型 父類引用指向子類物件 父類 person 子類 stu...

乙個小例子對多型簡單的理解

class parent public void writeway class child extends parent public void writeway public class pc 乙個叫做張三的人,偽裝 比如貼上鬍子,看上去像自己父親的年齡 然後對外稱自己為張某某 成了自己的父親張某...

乙個小例子對多型簡單的理解

class parent public void writeway class child extends parent public void writeway public class pc 乙個叫做張三的人,偽裝 比如貼上鬍子,看上去像自己父親的年齡 然後對外稱自己為張某某 成了自己的父親張某...