學號:201711671216 《Java程式設計》第六週學習總結
阿新 • • 發佈:2018-11-25
學號:201711671216 《Java程式設計》第六週學習總結
教材學習內容總結(P112-144):第五章
- 繼承是一種由易優百的類建立新類的機制。利用繼承可以先定義一個共有屬性的一般類,根據該一般來再定義具有特殊屬性的子類。注:java不支援多重繼承,即子類只能有一個父類。
- 在類的宣告中,通過使用關鍵字extends來定義一個類的子類。格式:class 子類名 extends 父類名{...}。 類的樹形結構:根結點是Object類(Object類是java.lang包中的類),即Object是所有類的祖先類。 任何類都是Object類的子孫類,每個類(除了Object類外)有且僅有一個父類,一個類可以有多個或另個子類。 注:沒有使用extends關鍵字的類,預設為Object類的子類。
- 子類的繼承性:子類的成員與方法一部分是子類自己宣告和定義的,另一部分是從它的父類繼承的。
- 同一個包中:子類自然繼承其父類中不是private的成員以及方法作為自己的成員與方法,而且繼承後訪問許可權不變。
- 不在同一個包:父類中的private和友好(friend)訪問許可權的成員變數與方法不能被子類繼承,也就是說子類只能繼承父類的protected和public訪問許可權的成員變數和方法。
- Protected的進一步說明:P115
- 子類物件的特點:子類建立物件的時候,不僅給自己的成員變數分配了空間,還有自己的,但是不分配為繼承的。但是子類從父類中繼承的方法,可以操作這部分未繼承的變數。
- 關於instanceof運算子:是java獨有的雙目運算子,其左邊的操作元是物件,右面的操作元是類,當左面的操作元是右面的類或其子類所建立的物件是,instanceof運算的結果是ture,否則是false。
- 成員變數的隱藏:如果所宣告的變數與從父類中繼承的名字相同,子類就會出現同名覆蓋(成員變數的隱藏)。 特點:(1)、是指子類重新定義的成員變數;(2)、子類繼承的方法所操作的成員變數一定是被子類繼承後隱藏的成員變數。
- 方法重寫:子類通過重寫可以隱藏已繼承的方法(方法重寫又名方法覆蓋)。 重寫規則:(1)、所謂方法重寫是指子類中定義一個方法,該方法的型別和父類的方法的型別一一致或者是父類的方法的子型別,並且這個方法的名字、引數個數、引數型別和父類的犯法完全相同; (2)、子類通過方法的重寫可以隱藏繼承的方法,子類通過方法的重寫可以把父類的狀態和行為改變成自身的狀態和行為。 注:重寫的方法可以操作繼承的,也可以是新的,但不能操作隱藏的,但可以用super操作。 (3)、重寫父類的方法時,不允許降低方法的訪問許可權,但是可以提高訪問許可權(訪問限制修飾符按訪問許可權從高到低的排列順序是public、protected、友好的、private)。
- Super關鍵字:用super操作被隱藏的成員變數和方法,eg; super.f();
- 使用super呼叫父類的構造方法:由於子類不繼承父類的構造方法,因此,子類在其構造方法中需使用super來電泳父類的構造方法,而且super必須是子類構造方法中的頭一條語句,格式 super(代替父類中構造方法的方法名)即:super(構造方法的引數)。
注:如果類中定義了一個或多個構造方法,namejava不提供預設的構造方法,因此,在父類定義對個構造方法時,應當包括一個不帶參的構造方法,以防止子類省略super時出現錯誤。
- final關鍵字:可以修飾類、成員變數和方法中的區域性變數
- Final類不能被繼承,即不能有子類。 final方法不允許子類重寫,final修飾的成員變數和區域性變數是常量,執行期間不允許發生變化。
- 物件的上轉型物件:把子類的物件賦給父類的物件。具有如下特點:(1)、上轉型物件不能操作子類新增的成員變數和方法(失去了部分屬性和行為); (2)、上轉型物件可以訪問子類繼承或隱藏的成員變數,也可以呼叫子類繼承Dev方法或子類重寫的方法。 注:
16、繼承與多型:上轉型是多型的一個表現形式,通過父類-子類方法重寫。 多型性就是指父類的某個方法被其子類重寫時,可以產生自己的功能行為。
17、abstract類(可以繼承,不能建立物件)和abstract方法(只允許宣告,不允許實現).
對於abstract方法,只允許宣告,不允許實現(沒有方法體),而且不允許使用final和abstract同時修飾一個方法或類,也不允許使用static修飾abstract方法,即abstract方法必須是例項方法。 (1)、abstract類中可以有abstract方法(2)、abstract類不能使用new運算子建立物件(3)、abstract類的子類必須重寫父類的abstract方法,即去掉abstract方法的abstract修飾,給出方法體(4)、abstract類的物件作上轉型物件(5)、理解abstract類,關鍵點:(1)、抽象類可以抽閒出重要的行為標準,該行為標準用朝向方法來表示。(2)、體現子類根據抽象類裡的行為標準給出具體行為。
- 面向抽象程式設計:是指當設計某種重要的類時,不讓該類面向具體的類,而是抽象的類,即所設計的類中的重要資料是抽象類宣告的物件,而不是具體類宣告的物件。 目的:避免設計者把大量的時間和精力花費在具體的演算法上。 核心技術:使用上轉型物件。
- 開-閉原則:就是讓設計的系統對擴充套件開放,對修改關閉。
教材學習中的問題和解決過程、
程式碼除錯中的問題和解決過程
其他(感悟、思考等,可選)
學習進度條
參考資料
·Java學習筆記(第8版)
·《Java學習筆記(第8版)》學習指導
·...