201711671212 《java程式設計》第六週學習總結
教材學習內容總結
本週學習內容:第五章:子類與繼承。
一、子類與父類
1、繼承是一種由已有的類建立新類的機制。
2、java不支援多重繼承,即子類只能有一個父類;子類與父類的關係是“is-a”關係。
3、子類關鍵字:extends,格式:class 子類名 extends 父類名{...}、
4、類的樹形結構:
(1)Object是所有類的祖先類,任何類都是Object的子孫類。
(2)若一個類的宣告中沒有使用extends關鍵字,那麼該類被系統預設是Object的子類。
5、子類和父類在同一個包中的繼承性:子類會自然地繼承父類公有、保護、友好的成員作為自己的成員變數。
6、 子類和父類不在同一個包中的繼承性:子類會自然地繼承父類的私有、友好的成員作為自己的成員變數。
二、子類與物件
1、instaanceof運算子:其左面的操作元——物件,右面的操作元——類;當左面的操作元是右面的類或其子類所建立的物件時,instanceof運算的結果是true,否則是false。
三、成員變數的隱藏和方法重寫
1、方法重寫:子類中定義一個方法,這個方法的型別和父類的方法的型別一致或者是父類的方法的型別的子型別,並且這個方法的名字、引數個數、引數型別、和父類的方法完全相同。
2、重寫的目的:子類可以隱藏繼承的方法,子類通過方法的重寫可以把父類的狀態和行為改變為吱聲的狀態和行為。
3、重寫方法即可以操作繼承的成員變數、呼叫繼承的方法,也可以操作子類新宣告的成員變數、呼叫新定義的其他方法,但無法操作被子類隱藏的成員變數和方法。如果子類想使用被隱藏的方法或成員變數,必須使用關鍵字super。
四、super 關鍵字
1、子類隱藏了繼承的成員變數,則子類建立的物件就不再擁有改變了,該變數歸關鍵字super所有,該方法的呼叫由關鍵字super負責。
2、使用super呼叫父類的構造方法
(1)若子類的構造方法沒有明顯地致命使用父類的哪個構造方法,子類就呼叫父類的不帶引數的構造方法。
(2)當在父類中定義多個構造方法時,應當包括一個不帶引數的構造方法。
五、final 關鍵字
1、final類不能被繼承,即不能有子類。
2、不允許子類隱藏可以繼承的final方法(老實繼承,不許做任何篡改)。
3、若成員變數或區域性變數被修飾為final,則是常量,且程式在宣告常量時必須指定該常量的值。
六、物件的上轉型物件(P126)
七、繼承與多型
1、多型性:指父類的某個方法被其子類重寫時,可以各自產生自己的功能行為。
八、abstract類和abstract方法
1、對於abstract方法,只允許宣告,不允許實現,而且不允許使用final和abstract同時修飾一個方法或類,也不允許使用static修飾abstract方法,即abstract方法必須是例項方法。
2、abstract類例也可以有或者沒有abstract方法。
參考資料
-
Java 2 實用教程(第5版)