+多態的作用是消除類型之間的耦合關系
允許將多種類型當作同一種類型來處理
一、再論向上轉型
繼承允許將對象視為它自己本身的類型或者基類型來加以處理,即向上轉型。
Music.tune(Instrument) 接受一個Instrument引用,同時也接受任何一個導出自Instrument的類。
Wind繼承自Instrument,所以Instrument的全部接口必定存在與Wind中
當傳入為Wind類時,是允許的。
Wind向上轉型為Instrument時,可能會縮小接口,但是不會比Instrument的全部接口更窄。
二、構造器和多態
- 構造器的調用順序
1、調用基類構造器,反復遞歸,直到最后一個導出類(即將該類的所有父類的構造器調用)
2、按聲明順序調用成員的初始化方法(調用聲明成員的構造器)
3、調用導出類構造器主題(調用自己的構造器)
- 多態
多態存在的三個必要條件:繼承、重寫、父類引用指向子類對象
動態綁定:在執行期間判斷所引用對象的實際類型,根據實際類型調用相應方法
多態的實現方式:
1、重寫
2、接口
3、抽象類和抽象方法