201711671129《Java程式設計》第6周學習總結
教材學習內容總結
5.1 子類與父類
繼承是一種由已有的類建立新類的機制。
Java不支援多重繼承,即子類只能有一個父類。
一般在類的樹形結構中,根結點為Object類;Object類是所有類的祖先類;如果一個類(除了Object類)的宣告中沒有使用extends關鍵字,那它就會被系統預設為Object類的子類。
5.2 子類的繼承性
同一個包:公有,保護,友好
不同包:公有,保護
5.3 子類與物件
建立時,子類總是按層次結構從上到下
instanceof 用來判斷左邊的操作元是否為右邊的類或其子類所建立的物件。
5.4 成員變數的隱藏和方法重寫
子類所宣告的成員變數的名字和從父類繼承來的成員變數的名字相同(宣告的型別可以不同),子類就會隱藏所繼承的成員變數。
特點:1.子類物件以及子類自己定義的方法操作與父類同名的成員變數是指子類重新宣告的這個成員變數。
2.子類物件仍然可以呼叫從父類繼承的方法操作被子類隱藏的成員變數,也就是說,子類繼承的方法所操作的成員變數一定是被子類繼承或隱藏的成員變數
方法重寫:指子類中定義一個方法,這個方法的型別和父類的方法的型別一致或者是父類的方法的型別的子型別一致,並且這個方法的名字、引數個數、引數的型別和父類的方法完全相同。——子類如此定義的方法稱做子類重寫的方法。
重寫的目的:隱藏繼承的方法
5.5 super關鍵字
子類繼承的方法只能操作子類繼承和隱藏的成員變數。子類新定義的方法可以操作子類繼承和子類新宣告的成員變數,但無法操作子類隱藏的成員變數,要想達成此操作,就需要使用關鍵字super。
如:super.x、super.play()就是用來訪問和呼叫被子類隱藏的成員變數x和方法play()。
5.6 final關鍵字
final關鍵字可以修飾類、成員變數和方法中的區域性變數。
final 類不能被繼承,即不能有子類。
final 修飾父類中的一個方法時,此方法不允許任何子類重寫。
5.7 物件的上轉型物件
特點:1.不能操作子類新增的成員變數,不能呼叫子類新增的方法;
2.可以訪問子類繼承或隱藏的成員變數,也可以呼叫子類繼承的方法或子類重寫的例項方法;
3.如果子類重寫了父類的某個例項方法後,當物件的上轉型物件呼叫這個例項方法時一定呼叫了子類重寫的例項方法。
5.8 繼承與多型
不同的子類在重寫父類的方法時可能產生不同的行為;
多型性就是指父類的某個方法被其子類重寫時,可以各自產生自己的功能行為。
5.9 abstract類和abstract方法
abstract=抽象。抽象方法只許宣告,不允許實現(沒有方法體)
abstract方法只能在abstract類中。
教材學習中的問題和解決過程
程式碼除錯中的問題和解決過程
其他(感悟、思考等,可選)
靜態的不能被覆蓋
重寫不能降低型別的許可權
abstract類不能建立例項
學習進度條
參考資料
·Java學習筆記
·《Java學習筆記(第8版)》學習指導