一種行爲的多種體現形態
父類引用=子類對象
父類 a=new 子類()
通過父類調用子類方法
類/抽象類 的多態
一個父類作爲方法的形參,-------方法內調用子類或本類方法,
可以傳入該類的對象或子類的對象
一個父類作爲方法的返回類型,可以返回該類的對象,子類的對象
缺點:不能調用子類特有的行爲,只能調用子父類共有的行爲
解決:向下轉型 即可以調用子類的特有的行爲
Anmial an=new Cat();----向上轉型
Cat c=(Anmial)an;-------向下轉型
多態的執行
編譯看左邊,運行看右邊
Instanceof
A instanceof B---------A是B類的對象或B類子類的對象
判斷對象an指向的 是否是Cat類
Anmial an;
If(an instanceof Cat){
Cat c=(Cat)an;
c.cat類特有的方法
}
接口的多態
接口 = 接口實現類對象
接口作爲方法的形參(有這一特性的類)------方法內調用接口的方法
可以傳入該接口的實現類對象
接口作爲方法的返回類型 返回接口實現類對象