標籤:
聲明:本欄目所使用的素材都是凱哥學堂VIP學員所寫,學員有權匿名,對文章有最終解釋權;凱哥學堂旨在促進VIP學員互相學習的基礎上公開筆記。
規則:1.建立子類對象時,先出父類後出子類。
2.調用方法時,先考慮子類,子類沒有就調用父類。
代碼角度,先建立父記憶體,再建立一個子類記憶體,子類疊加在父類記憶體上,在調用的時候先考慮上面(子類)的一層記憶體,在考慮下面(父類)的記憶體,所以先出父類再出子類是有一種疊加效果。
Super關鍵字:super打上括弧寫在構造器上,是用來選擇父類的某個構造器來進行構建。
在平時方法中寫上super關鍵字是表示要調用父類的某個方法。
例題:申請T1、T2類,T2繼承於T1.
流程:代碼執行到T2的main方法,然後T2 t2 new T2 並 把“星空”內容傳遞到了T2的構造器中。傳遞進來後super關鍵字聲明把name傳遞到了T1的構造器中name,T1構造器中的name又傳到了T1的屬性中,T1的屬性中寄存了“星空”,T2調用了get name 方法就是父類的get name方法,最後把“星空”列印出來。
Final:
修飾在變數上,變數變常量。命名上有規定,名稱需要全大寫。
修飾在屬性上,屬性變常量。1.(public static final String NAME=”kk”;)
2.與對象記憶體或者類記憶體是不在一起儲存的,它專門有一個常量層儲存。
修飾在方法上,子類不可重寫此方法。
修飾在類上,類不可以被繼承,不可派生子類。
Final修飾在類上:不可繼承。
Final修飾在方法上:報錯!
Final修飾在屬性上,final是常量,常量不可改變,修飾在屬性上時加上static,寫成靜態成員都可以訪問。
怪題:
構建對象步驟:1.載入屬性、方法
2.屬性賦值、載入執行個體塊
3.造構造器調用
怪題講解:new Test2 先載入Test1的屬性和方法,然後Test2的屬性方法也載入起來但是屬性還沒有賦值。然後先載入父類的執行個體塊和賦值,這時候Test1 的構造器進行構建,開始調用。Test2重寫了Test1的方法,Test1的方法調用到了Test2的方法上。Test2的屬性還沒有賦值,Test2的方法直接列印了i。最終的列印結果是0.(Test 沒有進行屬性賦值,舒適化是0)
例題1: 簡訊發送例題。
1.寫上Phone Code父類,類裡面get、set設定手機號碼、驗證碼屬性,傳送簡訊方法。
2.申請不同平台的子類繼承與Phone Code ,子類重寫傳送簡訊方法。根據平台不同,書寫不同的傳送簡訊方法。
3.申請一個簡訊發送綜合類,簡訊發送綜合類可以對某個平台進行調用。
例題2:廚師類
1.父類中寫上廚師共有的屬性、方法。
2.建立地方菜師傅,他們的屬性方法繼承與父類,根據菜系不同他們的做菜的方法都不一樣,重寫父類方法。(規範)
3.可以重寫來重新給師傅的方法重新覆蓋。調用的時候調用川菜師傅2的方法。
總結:繼承兩種用法:
1.派生,派生就是不斷的複用和升級,也可以說是打補丁,出新產品。
2.規範,規範就是使用父類申請子類該有的方法,讓子類去重寫這些方法。
Java基礎——物件導向(繼承應用)