1. 記住一點就可以了,多型時執行的優先級別
多型this.show(o)、super.show(o)、this.show((super)o)、super.show((super)o
參考
this,show(o) //呼叫本類,引數型別為o的方法,這個就不用說了,大部分**都是這樣的
如果本類沒有引數型別為o的方法,去呼叫父類的引數型別為o的方法,super.show(o)
如果父類也沒有的話,呼叫本類引數為o的父類的引數的方法-> 如果有的話,還有看引用指向實際的例項類有沒有覆蓋這個方法,有的話最終呼叫重寫的方法
a a=new b();
system.out.println(a.show(b));
這裡找到了 a中的show(super(o)) 但是a的例項是b類 ,b類重寫了這個方法,最終呼叫b類的show(super(o)),如果沒有的話,就呼叫a的show super(o)
如果這個也沒有
呼叫超類 引數型別為o的超類的方法
如果還沒有,肯定就報錯了
Java 多型的理解
物件導向程式設計有三個特徵,即封裝 繼承和多型。封裝隱藏了類的內部實現機制,從而可以在不影響使用者的前提下改變類的內部結構,同時保護了資料。繼承是為了重用父類 同時為實現多型性作準備。那麼什麼是多型呢?要理解多型性,首先要知道什麼是 向上轉型 我定義了乙個子類cat,它繼承了animal類,那麼後者...
Java多型的理解
要想清楚的理解什麼是多型,就必須要了解 向上轉型 這個概念。下面我們通過乙個例子來介紹向上轉型。public class person protected void sleep public void play public class student extends person public c...
java多型的理解
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 extend...