




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
北京傳智播客教育繼承(上)馮佳北京傳智播客教育4繼承(上)4.1繼承的概述4.2繼承的特點4.3super關鍵字4.4函數覆蓋4.5子類的實例化過程4.6final關鍵字北京傳智播客教育4.1繼承的概述多個類中存在相同屬性和行為時,將這些內容抽取到單獨一個類中,那么多個類無需再定義這些屬性和行為,只要繼承那個類即可。多個類可以稱為子類,單獨這個類稱為父類或者超類基類。子類可以直接訪問父類中的非私有的屬性和行為。通過extends關鍵字讓類與類之間產生繼承關系。classSubDemoextendsDemo{}繼承的出現提高了代碼的復用性。繼承的出現讓類與類之間產生了關系,提供了多態的前提。北京傳智播客教育4.2繼承的特點Java只支持單繼承,不支持多繼承。一個類只能有一個父類,不可以有多個父類。classSubDemoextendsDemo{}//okclassSubDemoextendsDemo1,Demo2...//errorJava支持多層繼承(繼承體系)classA{}classBextendsA{}classCextendsB{}定義繼承需要注意:不要僅為了獲取其他類中某個功能而去繼承類與類之間要有所屬("isa")關系,xx1是xx2的一種。北京傳智播客教育extends注意細節1成員變量如果子父類中出現非私有的同名成員變量時,子類要訪問本類中的變量,用this;訪問父類中的同名變量用super。super的使用和this的使用幾乎一致。this代表的是本類對象的引用;super當前子類對象父類的引用2成員函數當子類出現和父類一模一樣的函數時,當子類對象調用該函數,會運行子類函數的內容。如同父類的函數被覆蓋一樣。這種情況是函數的另一個特性:重寫(覆蓋)(override)重載overload,重寫的應用舉例:siri3構造函數在對子類對象進行初始化時,父類的構造函數也會運行,那是因為子類的構造函數默認第一行有一條隱式的語句super()。super():會訪問父類中的空參數構造函數。而且子類中所有的構造函數默認第一行都是super()子類構造函數能覆蓋父類構造函數嗎?北京傳智播客教育4.3super關鍵字super和this的用法相像this代表對象的引用(誰調用就代表誰)super代表當前子類對象父類的引用。當子父類出現同名成員時,可以用super進行區分子類要調用父類構造函數時,可以使用super語句。北京傳智播客教育super和this的區別this
:對象的引用(誰調用就代表誰)使用this關鍵字引用成員變量。使用this關鍵字在自身構造方法內部引用其他構造方法。使用this關鍵字引用成員方法super
:當前對象里面的父類的引用。在子類的構造方法內部引用父類的構造方法。在子類中調用父類中的成員方法。在子類中調用父類中的成員變量。北京傳智播客教育關于super的問題1如果子類繼承了父類,父類中定義了有參的構造函數,并且還沒有空參的構造函數,創建子類對象時會怎么樣?2,super();是寫在構造函數的第一行,this();也是寫在構造函數的第一行,那么他倆可以同時出現嗎?3,總結子類至少有一個構造函數訪問父類的構造函數北京傳智播客教育4.4函數覆蓋(Override)子類中出現與父類一模一樣的方法時,會出現覆蓋操作,也稱為重寫或者復寫。父類中的私有方法可不可以被覆蓋呢?子類根本就看不到父類的方法在子類覆蓋方法中,繼續使用被覆蓋的方法可以通過super.函數名獲取。覆蓋注意事項:覆蓋時,子類方法權限一定要大于等于父類方法權限靜態只能覆蓋靜態。覆蓋的應用:當子類需要父類的功能,而功能主體子類有自己特有內容時,可以復寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容。北京傳智播客教育4.5子類的實例化過程子類中所有的構造函數默認都會訪問父類中空參數的構造函數因為每一個子類的構造函數的第一行都有一條默認的語句super();子類會具備父類中的數據,所以要先明確父類是如何對這些數據初始化的。當父類中沒有空參數的構造函數時,子類的構造函數必須通過this或者super語句指定要訪問的構造函數。北京傳智播客教育extends的弊端打破封裝性,也就是可能會有惡意繼承classFu{ publicvoidshow(){ //調用底層資源 }}classZiextendsFu{ publicvoidshow(){ System.out.println("小樣功能被我干掉了"); }}那么有一些類不想讓別人繼承怎么辦呢?請看final關鍵字北京傳智播客教育4.6final關鍵字final可以修飾類,方法,變量。final修飾的類不可以被繼承。final修飾的方法不可以被覆蓋。final修飾的變量是一個常量。只能被賦值一次。什么時候將變量修飾成final呢?通常在程序中使用一些不會變化的數據.也就是常見的一些常量值.比如3.14,這個數直接使用是可以的,但并不利于閱讀,所以一般情況下,都會被該數據起個容易閱讀的名稱final修飾的常量定義一般都有書寫規范,被final修飾的常量名稱,所有字母都大寫例如:doublePI=3.14;如果由多個單詞組成每個單詞間用下劃線連接局部內部類只能訪問被final修飾的局部變量。北京傳智播客教育final修飾變量賦值問題1,finalintNUM=15;NUM=20//這樣做不可以,final修飾意味著不可以改變2,final修飾成員變量,必須初始化,初始化有兩種1,顯示初始化//finalintNUM=15;2,構造函數初始化//finalintNUM;通過構造函數初始化但是不能兩個一起初始化一般定義把常量定義成final還需要定義成static的,為什么?定義成publicstaticfinalintNUM=15;//全局常量北京傳智播客教育final和private小結區別:1,final修飾的類可以訪問
private不可以修飾外部類,但可以修飾內部類,講內部類的時候會演示(其實把外部類私有化是沒有意義的)
2,final修飾的方法不可以被子類重寫
private修飾的方法表面上看是可以被子類重寫的,其實不可以,子類是看不到父
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- NB/T 11643-2024煤炭快速定量裝車系統通用技術標準
- 豪宅項目轉讓協議書范本
- 貨運司機兼職合同協議
- 貸款采購供銷合同協議
- 貨場鋼材回收合同協議
- 走賬免責協議書模板
- 設備共享協議書范本
- 貨運公路運輸合同協議
- 解除就業協議書模板
- 2025年礦山安全與環境保護專業考試題及答案
- 北京2025年中國環境監測總站招聘(第二批)筆試歷年參考題庫附帶答案詳解
- “皖南八校”2024-2025學年高一第二學期期中考試-英語(譯林版)及答案
- 安寧療護人文關懷護理課件
- 黑龍江省齊齊哈爾市龍江縣部分學校聯考2023-2024學年八年級下學期期中考試物理試題【含答案、解析】
- 2024-2025學年成都高新區七上數學期末考試試卷【含答案】
- 定額〔2025〕1號文-關于發布2018版電力建設工程概預算定額2024年度價格水平調整的通知
- “記憶中的人、事兒”為副標題(四川眉山原題+解題+范文+副標題作文“追求”主題)-2025年中考語文一輪復習之寫作
- 2024年企業員工研發補貼協議范本模板3篇
- 全國賽課一等獎初中統編版七年級道德與法治上冊《樹立正確的人生目標》教學設計
- 《思想政治教育方法論》考研(第3版)鄭永廷配套考試題庫及答案【含名校真題、典型題】
- 初中數學新課程標準(2024年版)
評論
0/150
提交評論