Java學習之多型

2021-07-09 13:44:37 字數 652 閱讀 3758

以下只是個人的淺薄理解,其實還是不太懂,只有以後懂了再更新。

知識點:

多型(動態繫結):除了static和final(含private)方法,其他方法都要進行動態繫結

優點:產生正確行為。編譯器不知道物件方法,目的,只是後面引用的時候呼叫相應方法

可擴充套件性。所做更改不會對程式不受影響部分產生破壞。

缺陷:「覆蓋」私有方法。不能達到過載目的,系統認為是2個不同方法,所以方法名可以不同。

域和靜態方法。直接訪問域在編譯的時候解析,上轉型可以直接獲得基類變數,方法則返回匯出類方法返回的變數值。

上轉型:對某個物件的引用視其為基類的引用的做法。shape shape = new circle();

下轉型:instanceof

忘記物件型別:只與基類打交道,不管匯出類,通過上轉型達到多型的目的。

構造器在多型中:構造器並不是多型?呼叫順序:先是在基類構造器再層層下去,按宣告順序初始化,最後是匯出類構造器。

構造器內部多型變化:在任何其他事物發生之前,將分配給物件的儲存空間初始化二進位制零重複上述步驟。

繼承與組合設計原則:用繼承表達行為間的差異,用字段表達狀態的變化。匯出類方法變化,組合變化狀態。

總結:多型意味著不同狀態。從基類繼承的介面有不同展現形式,不同的動態繫結。運用繼承和抽象建立理解多型。

java學習之多型

向上轉型是不需要進行強制型別轉換的,但是向上轉型會丟失精度。與向上轉型對應的乙個概念就是 向下轉型 所謂向下轉型,也就是說父類的物件可以轉換為子類物件,但是需要注意的是,這時則必須要進行強制的型別轉換。類似於人壓彈簧 一 向上轉型可以自動完成 二 向下轉型必須進行強制型別轉換。可以用instance...

Java學習之多型

原帖 多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態...

Java學習之多型

多型 晚繫結。不要把函式過載理解為多型。因為多型是一種執行期的行為,不是編譯期的行為。多型 父型別的引用可以指向子型別的物件。比如 parent p new child 當使用多型方式呼叫方法時,首先檢查父類中是否有該方法,如果沒有,則編譯錯誤 如果有,再去呼叫子類的該同名方法。注意此處,靜態sta...