




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
北京傳智播客教育繼承(上)馮佳北京傳智播客教育4繼承(上)4.1繼承的概述4.2繼承的特點(diǎn)4.3super關(guān)鍵字4.4函數(shù)覆蓋4.5子類的實(shí)例化過程4.6final關(guān)鍵字北京傳智播客教育4.1繼承的概述多個(gè)類中存在相同屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類中,那么多個(gè)類無需再定義這些屬性和行為,只要繼承那個(gè)類即可。多個(gè)類可以稱為子類,單獨(dú)這個(gè)類稱為父類或者超類基類。子類可以直接訪問父類中的非私有的屬性和行為。通過extends關(guān)鍵字讓類與類之間產(chǎn)生繼承關(guān)系。classSubDemoextendsDemo{}繼承的出現(xiàn)提高了代碼的復(fù)用性。繼承的出現(xiàn)讓類與類之間產(chǎn)生了關(guān)系,提供了多態(tài)的前提。北京傳智播客教育4.2繼承的特點(diǎn)Java只支持單繼承,不支持多繼承。一個(gè)類只能有一個(gè)父類,不可以有多個(gè)父類。classSubDemoextendsDemo{}//okclassSubDemoextendsDemo1,Demo2...//errorJava支持多層繼承(繼承體系)classA{}classBextendsA{}classCextendsB{}定義繼承需要注意:不要僅為了獲取其他類中某個(gè)功能而去繼承類與類之間要有所屬("isa")關(guān)系,xx1是xx2的一種。北京傳智播客教育extends注意細(xì)節(jié)1成員變量如果子父類中出現(xiàn)非私有的同名成員變量時(shí),子類要訪問本類中的變量,用this;訪問父類中的同名變量用super。super的使用和this的使用幾乎一致。this代表的是本類對(duì)象的引用;super當(dāng)前子類對(duì)象父類的引用2成員函數(shù)當(dāng)子類出現(xiàn)和父類一模一樣的函數(shù)時(shí),當(dāng)子類對(duì)象調(diào)用該函數(shù),會(huì)運(yùn)行子類函數(shù)的內(nèi)容。如同父類的函數(shù)被覆蓋一樣。這種情況是函數(shù)的另一個(gè)特性:重寫(覆蓋)(override)重載overload,重寫的應(yīng)用舉例:siri3構(gòu)造函數(shù)在對(duì)子類對(duì)象進(jìn)行初始化時(shí),父類的構(gòu)造函數(shù)也會(huì)運(yùn)行,那是因?yàn)樽宇惖臉?gòu)造函數(shù)默認(rèn)第一行有一條隱式的語句super()。super():會(huì)訪問父類中的空參數(shù)構(gòu)造函數(shù)。而且子類中所有的構(gòu)造函數(shù)默認(rèn)第一行都是super()子類構(gòu)造函數(shù)能覆蓋父類構(gòu)造函數(shù)嗎?北京傳智播客教育4.3super關(guān)鍵字super和this的用法相像this代表對(duì)象的引用(誰調(diào)用就代表誰)super代表當(dāng)前子類對(duì)象父類的引用。當(dāng)子父類出現(xiàn)同名成員時(shí),可以用super進(jìn)行區(qū)分子類要調(diào)用父類構(gòu)造函數(shù)時(shí),可以使用super語句。北京傳智播客教育super和this的區(qū)別this
:對(duì)象的引用(誰調(diào)用就代表誰)使用this關(guān)鍵字引用成員變量。使用this關(guān)鍵字在自身構(gòu)造方法內(nèi)部引用其他構(gòu)造方法。使用this關(guān)鍵字引用成員方法super
:當(dāng)前對(duì)象里面的父類的引用。在子類的構(gòu)造方法內(nèi)部引用父類的構(gòu)造方法。在子類中調(diào)用父類中的成員方法。在子類中調(diào)用父類中的成員變量。北京傳智播客教育關(guān)于super的問題1如果子類繼承了父類,父類中定義了有參的構(gòu)造函數(shù),并且還沒有空參的構(gòu)造函數(shù),創(chuàng)建子類對(duì)象時(shí)會(huì)怎么樣?2,super();是寫在構(gòu)造函數(shù)的第一行,this();也是寫在構(gòu)造函數(shù)的第一行,那么他倆可以同時(shí)出現(xiàn)嗎?3,總結(jié)子類至少有一個(gè)構(gòu)造函數(shù)訪問父類的構(gòu)造函數(shù)北京傳智播客教育4.4函數(shù)覆蓋(Override)子類中出現(xiàn)與父類一模一樣的方法時(shí),會(huì)出現(xiàn)覆蓋操作,也稱為重寫或者復(fù)寫。父類中的私有方法可不可以被覆蓋呢?子類根本就看不到父類的方法在子類覆蓋方法中,繼續(xù)使用被覆蓋的方法可以通過super.函數(shù)名獲取。覆蓋注意事項(xiàng):覆蓋時(shí),子類方法權(quán)限一定要大于等于父類方法權(quán)限靜態(tài)只能覆蓋靜態(tài)。覆蓋的應(yīng)用:當(dāng)子類需要父類的功能,而功能主體子類有自己特有內(nèi)容時(shí),可以復(fù)寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內(nèi)容。北京傳智播客教育4.5子類的實(shí)例化過程子類中所有的構(gòu)造函數(shù)默認(rèn)都會(huì)訪問父類中空參數(shù)的構(gòu)造函數(shù)因?yàn)槊恳粋€(gè)子類的構(gòu)造函數(shù)的第一行都有一條默認(rèn)的語句super();子類會(huì)具備父類中的數(shù)據(jù),所以要先明確父類是如何對(duì)這些數(shù)據(jù)初始化的。當(dāng)父類中沒有空參數(shù)的構(gòu)造函數(shù)時(shí),子類的構(gòu)造函數(shù)必須通過this或者super語句指定要訪問的構(gòu)造函數(shù)。北京傳智播客教育extends的弊端打破封裝性,也就是可能會(huì)有惡意繼承classFu{ publicvoidshow(){ //調(diào)用底層資源 }}classZiextendsFu{ publicvoidshow(){ System.out.println("小樣功能被我干掉了"); }}那么有一些類不想讓別人繼承怎么辦呢?請(qǐng)看final關(guān)鍵字北京傳智播客教育4.6final關(guān)鍵字final可以修飾類,方法,變量。final修飾的類不可以被繼承。final修飾的方法不可以被覆蓋。final修飾的變量是一個(gè)常量。只能被賦值一次。什么時(shí)候?qū)⒆兞啃揎棾蒮inal呢?通常在程序中使用一些不會(huì)變化的數(shù)據(jù).也就是常見的一些常量值.比如3.14,這個(gè)數(shù)直接使用是可以的,但并不利于閱讀,所以一般情況下,都會(huì)被該數(shù)據(jù)起個(gè)容易閱讀的名稱final修飾的常量定義一般都有書寫規(guī)范,被final修飾的常量名稱,所有字母都大寫例如:doublePI=3.14;如果由多個(gè)單詞組成每個(gè)單詞間用下劃線連接局部?jī)?nèi)部類只能訪問被final修飾的局部變量。北京傳智播客教育final修飾變量賦值問題1,finalintNUM=15;NUM=20//這樣做不可以,final修飾意味著不可以改變2,final修飾成員變量,必須初始化,初始化有兩種1,顯示初始化//finalintNUM=15;2,構(gòu)造函數(shù)初始化//finalintNUM;通過構(gòu)造函數(shù)初始化但是不能兩個(gè)一起初始化一般定義把常量定義成final還需要定義成static的,為什么?定義成publicstaticfinalintNUM=15;//全局常量北京傳智播客教育final和private小結(jié)區(qū)別:1,final修飾的類可以訪問
private不可以修飾外部類,但可以修飾內(nèi)部類,講內(nèi)部類的時(shí)候會(huì)演示(其實(shí)把外部類私有化是沒有意義的)
2,final修飾的方法不可以被子類重寫
private修飾的方法表面上看是可以被子類重寫的,其實(shí)不可以,子類是看不到父
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 南昌市租賃住房合同樣本
- 青島企業(yè)員工勞動(dòng)合同范本
- 企業(yè)退休返聘合同范本
- 租賃運(yùn)輸工具合同標(biāo)準(zhǔn)
- 版離婚合同模板:專業(yè)律師為您量身定制
- 酒店員工勞動(dòng)合同標(biāo)準(zhǔn)合同
- 高校畢業(yè)就業(yè)合同簽訂須知
- 影視作品授權(quán)合同(臺(tái)港澳地區(qū))
- 光纖通信安全與防護(hù)考核試卷
- 木片在農(nóng)業(yè)土壤改良的研究進(jìn)展考核試卷
- 地理-天一大聯(lián)考2025屆高三四省聯(lián)考(陜晉青寧)試題和解析
- 小巴掌童話課件
- 教科版六年級(jí)科學(xué)下冊(cè)全冊(cè)教學(xué)設(shè)計(jì)教案
- 部編版小學(xué)五年級(jí)下冊(cè)《道德與法治》全冊(cè)教案含教學(xué)計(jì)劃
- 運(yùn)動(dòng)會(huì)活動(dòng)流程中的醫(yī)療安全保障措施
- 2025公司員工試用期合同(范本)
- 第十章皮膚軟組織擴(kuò)張術(shù)醫(yī)學(xué)美容教研室袁曉野講解
- 2025年冷鏈物流產(chǎn)品配送及倉(cāng)儲(chǔ)管理承包合同3篇
- 2024年青島遠(yuǎn)洋船員職業(yè)學(xué)院高職單招語文歷年參考題庫(kù)含答案解析
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 浙教版2023小學(xué)信息技術(shù)六年級(jí)上冊(cè)《人機(jī)對(duì)話的實(shí)現(xiàn)》說課稿及反思
評(píng)論
0/150
提交評(píng)論