多型可以用現象與本質來理解。
栗子(偽**):
當用這樣的例項化方式時:people ykh=new my();class people
void drink()
}class my
void drink()
void special()
}people ykh=new my();
可以這樣理解:用people這個現象來裝飾my這個本質。從現象來看,我是乙個人,我會eat,drink。但只從現象來看,看不出我的特別之處。所以「ykh」不能呼叫special()。
本質上:我是我自己。就算被people來裝飾,我也有自己的eat,drink的方式。所以「ykh」呼叫eat,drink時是呼叫的class my中的eat,drink。(其實我自己也不知道我在說啥~~)
一句話:引用變數型別決定了能呼叫的方法。被引用物件決定調誰的方法。
多型與轉型:
使用多型就存在向上轉型,向上轉型不用說。但是向下轉型是有點小坑的。
經典例題:class animal
class dog extends animal
class cat extends animal
class test
}
輸出結果: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 test
}
其實還想找更多的測試案列來查漏補缺的。但是有些想法都像流星一般轉瞬即逝。以後清晰了在補充案列吧。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
10--b and a
java筆記 多型
一 多型的概述 多型 物件在不同時刻表現出來的不同狀態 多型是針對引用型別 編譯期間的狀態和執行期間的狀態。前提條件 a 要有繼承關係 b 要有方法重寫 c 要有父類引用指向子類物件 class fu class zi extends fu class duotai 這就是多型編譯期間父型別,執行期...
java學習筆記之 多型
父類引用指向子類物件時,注意以下幾點 1 例項化乙個沒有名字的子類物件,然後向上轉型為父類的父類的引用,先去呼叫子類重寫的方法,子類沒有重寫就再去呼叫父類的方法。2 只能呼叫父類中定義過的方法和變數 父類中沒有定義過呼叫的時候要報錯 3 專屬於子類的成員變數,在子類方法中被訪問時,這時候通過父類引用...
JAVA學習筆記之多型
型別轉換分為自動型別轉換和強制型別轉換 1.自動型別轉換 向上型別轉換 父類 小型別 子類 大型別 不存在風險 animal animal new animal dog dog new dog animal dog 自動型別轉換,不存在風險2.強制型別轉換 向下型別轉換 子類 大型別 父類 小型別 ...