




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
JAVA類(lèi)的繼承和派生講解演講人:日期:目錄CONTENTS繼承與派生基本概念繼承中成員變量訪問(wèn)規(guī)則方法重寫(xiě)與重載在繼承中應(yīng)用構(gòu)造函數(shù)在繼承中特性分析多態(tài)性在繼承中體現(xiàn)總結(jié)回顧與拓展延伸01繼承與派生基本概念CHAPTER繼承定義在面向?qū)ο缶幊讨?,繼承是一種實(shí)現(xiàn)代碼重用的機(jī)制,它允許創(chuàng)建一個(gè)新類(lèi)(派生類(lèi))來(lái)繼承現(xiàn)有類(lèi)(基類(lèi))的屬性和方法。繼承作用通過(guò)繼承,派生類(lèi)可以自動(dòng)獲得基類(lèi)的所有非私有成員(字段、方法、內(nèi)部類(lèi)等),從而實(shí)現(xiàn)了代碼的復(fù)用和擴(kuò)展。同時(shí),繼承也是實(shí)現(xiàn)多態(tài)性的基礎(chǔ)。繼承定義及作用基類(lèi)(父類(lèi)/超類(lèi))被繼承的類(lèi)稱(chēng)為基類(lèi),它定義了派生類(lèi)共享的通用屬性和方法。派生類(lèi)(子類(lèi))繼承基類(lèi)的類(lèi)稱(chēng)為派生類(lèi),它繼承了基類(lèi)的所有非私有成員,并可以添加新的成員或重寫(xiě)基類(lèi)的方法。關(guān)系派生類(lèi)是基類(lèi)的一種特殊化,它繼承了基類(lèi)的所有功能并可以擴(kuò)展新的功能?;?lèi)與派生類(lèi)之間形成了一種“is-a”關(guān)系,即派生類(lèi)是基類(lèi)的一種類(lèi)型。派生類(lèi)與基類(lèi)關(guān)系訪問(wèn)控制修飾符private私有成員只能被其所在的類(lèi)訪問(wèn),派生類(lèi)無(wú)法直接訪問(wèn)基類(lèi)的私有成員。protected受保護(hù)成員可以被其所在的類(lèi)和派生類(lèi)訪問(wèn),但不能被其他類(lèi)訪問(wèn)。默認(rèn)(無(wú)修飾符)默認(rèn)訪問(wèn)級(jí)別的成員可以被其所在的包內(nèi)的其他類(lèi)訪問(wèn),但不能被其他包的類(lèi)訪問(wèn)。派生類(lèi)可以訪問(wèn)基類(lèi)的默認(rèn)訪問(wèn)級(jí)別成員。public公共成員可以被任何類(lèi)訪問(wèn),派生類(lèi)可以訪問(wèn)基類(lèi)的公共成員。02繼承中成員變量訪問(wèn)規(guī)則CHAPTER03若要訪問(wèn)被隱藏的父類(lèi)成員變量,可以使用super關(guān)鍵字。01子類(lèi)可以定義與父類(lèi)同名的成員變量,此時(shí)父類(lèi)的成員變量會(huì)被隱藏。02當(dāng)通過(guò)子類(lèi)對(duì)象訪問(wèn)該變量時(shí),將訪問(wèn)子類(lèi)中的變量,而不是父類(lèi)中的變量。成員變量隱藏規(guī)則super關(guān)鍵字用于引用父類(lèi)中的成員變量和方法。當(dāng)子類(lèi)需要訪問(wèn)被隱藏的父類(lèi)成員變量時(shí),可以使用“super.變量名”的形式進(jìn)行訪問(wèn)。使用super關(guān)鍵字可以調(diào)用父類(lèi)中的構(gòu)造方法,以初始化繼承自父類(lèi)的部分。super關(guān)鍵字使用01當(dāng)子類(lèi)中定義了與父類(lèi)同名的成員變量時(shí),編譯器會(huì)默認(rèn)使用子類(lèi)的成員變量。02若需要在子類(lèi)中訪問(wèn)被隱藏的父類(lèi)成員變量,可以使用super關(guān)鍵字進(jìn)行顯式引用。03為了避免混淆和錯(cuò)誤,建議盡量避免在子類(lèi)中定義與父類(lèi)同名的成員變量。如果確實(shí)需要定義同名變量,應(yīng)確保在代碼中進(jìn)行清晰的注釋和說(shuō)明,以便其他開(kāi)發(fā)者理解變量的來(lái)源和用途。變量名沖突解決策略03方法重寫(xiě)與重載在繼承中應(yīng)用CHAPTER方法重寫(xiě)原則:在子類(lèi)中定義一個(gè)與父類(lèi)中同名、同參數(shù)列表的方法,即可實(shí)現(xiàn)對(duì)父類(lèi)方法的重寫(xiě)。重寫(xiě)后的方法將覆蓋父類(lèi)中的方法。注意事項(xiàng)重寫(xiě)方法時(shí),訪問(wèn)修飾符不能低于父類(lèi)方法的訪問(wèn)修飾符。重寫(xiě)方法時(shí),返回值類(lèi)型必須與父類(lèi)方法的返回值類(lèi)型相同或是其子類(lèi)型。重寫(xiě)方法時(shí),不能拋出比父類(lèi)方法更多的異常或更廣泛的異常。方法重寫(xiě)原則及注意事項(xiàng)方法重載定義及示例01方法重載定義:在同一個(gè)類(lèi)中,可以定義多個(gè)名稱(chēng)相同但參數(shù)列表不同的方法,這種現(xiàn)象稱(chēng)為方法的重載。02示例03voidshow(intnum)和voidshow(doublenum)是重載方法,因?yàn)樗鼈儏?shù)列表不同。04voidshow(intnum)和intshow(intnum)不是重載方法,因?yàn)樗鼈兎祷刂殿?lèi)型不同但參數(shù)列表相同。在運(yùn)行時(shí)根據(jù)實(shí)際對(duì)象的類(lèi)型來(lái)調(diào)用相應(yīng)的方法,這種機(jī)制稱(chēng)為動(dòng)態(tài)綁定。它是面向?qū)ο缶幊讨袑?shí)現(xiàn)多態(tài)性的重要手段之一。動(dòng)態(tài)綁定機(jī)制當(dāng)程序調(diào)用一個(gè)對(duì)象的方法時(shí),Java虛擬機(jī)首先查找該對(duì)象所屬的類(lèi)中是否有這個(gè)方法,如果有則直接調(diào)用;如果沒(méi)有則查找其父類(lèi)是否有這個(gè)方法,依此類(lèi)推直到找到合適的方法或者查找到Object類(lèi)為止。在這個(gè)過(guò)程中,Java虛擬機(jī)采用動(dòng)態(tài)綁定的方式來(lái)確定應(yīng)該調(diào)用哪個(gè)方法。實(shí)現(xiàn)原理動(dòng)態(tài)綁定機(jī)制解析04構(gòu)造函數(shù)在繼承中特性分析CHAPTER構(gòu)造函數(shù)調(diào)用順序父類(lèi)構(gòu)造器優(yōu)先在創(chuàng)建子類(lèi)對(duì)象時(shí),首先會(huì)調(diào)用父類(lèi)的構(gòu)造函數(shù),然后再調(diào)用子類(lèi)的構(gòu)造函數(shù)。這是為了確保子類(lèi)在構(gòu)造時(shí)能夠繼承父類(lèi)的屬性和方法。構(gòu)造器鏈如果父類(lèi)也有父類(lèi),那么會(huì)依次向上調(diào)用各級(jí)父類(lèi)的構(gòu)造函數(shù),形成一個(gè)構(gòu)造器鏈。VS如果子類(lèi)的構(gòu)造器沒(méi)有顯式地調(diào)用父類(lèi)的某個(gè)構(gòu)造器,那么默認(rèn)會(huì)調(diào)用父類(lèi)的無(wú)參構(gòu)造器。顯式調(diào)用父類(lèi)構(gòu)造器如果子類(lèi)的構(gòu)造器想要調(diào)用父類(lèi)的有參構(gòu)造器,可以通過(guò)`super`關(guān)鍵字來(lái)實(shí)現(xiàn)。此時(shí),需要在子類(lèi)構(gòu)造器的第一行顯式地調(diào)用父類(lèi)構(gòu)造器,并傳遞相應(yīng)的參數(shù)。隱式調(diào)用父類(lèi)無(wú)參構(gòu)造器子類(lèi)構(gòu)造器初始化過(guò)程this關(guān)鍵字在構(gòu)造器中,`this`關(guān)鍵字代表當(dāng)前對(duì)象。通過(guò)`this`可以訪問(wèn)當(dāng)前對(duì)象的屬性和方法,也可以調(diào)用當(dāng)前類(lèi)的其他構(gòu)造器。super關(guān)鍵字在構(gòu)造器中,`super`關(guān)鍵字代表父類(lèi)對(duì)象。通過(guò)`super`可以訪問(wèn)父類(lèi)的屬性和方法,也可以調(diào)用父類(lèi)的構(gòu)造器。需要注意的是,`super`必須是子類(lèi)構(gòu)造器中的第一條語(yǔ)句,且每個(gè)構(gòu)造器中只能出現(xiàn)一次。區(qū)別與聯(lián)系this和super在構(gòu)造器中的主要區(qū)別在于它們所代表的對(duì)象不同。this代表當(dāng)前對(duì)象,而super代表父類(lèi)對(duì)象。在訪問(wèn)屬性和方法時(shí),如果沒(méi)有使用this或super關(guān)鍵字,那么默認(rèn)會(huì)訪問(wèn)當(dāng)前對(duì)象的屬性和方法。如果需要使用父類(lèi)的屬性或方法,就必須使用super關(guān)鍵字。同時(shí),在構(gòu)造器中可以通過(guò)this()或super()來(lái)調(diào)用其他構(gòu)造器,以實(shí)現(xiàn)構(gòu)造器的重載和繼承。this和super在構(gòu)造器中區(qū)別05多態(tài)性在繼承中體現(xiàn)CHAPTER多態(tài)性定義多態(tài)性是面向?qū)ο缶幊痰娜筇匦灾?,指的是允許不同類(lèi)的對(duì)象對(duì)同一消息做出響應(yīng),即同一消息可以根據(jù)發(fā)送對(duì)象的不同而采用多種不同的行為方式。多態(tài)性實(shí)現(xiàn)方式在Java中,多態(tài)性主要通過(guò)繼承和接口實(shí)現(xiàn)。通過(guò)方法重寫(xiě)和重載,子類(lèi)可以覆蓋父類(lèi)的方法,從而實(shí)現(xiàn)不同的行為。多態(tài)性概念引入方法重寫(xiě)實(shí)現(xiàn)多態(tài)性方法重寫(xiě)是指在子類(lèi)中定義一個(gè)與父類(lèi)中同名、同參數(shù)列表的方法,從而覆蓋父類(lèi)中的方法。當(dāng)通過(guò)子類(lèi)對(duì)象調(diào)用該方法時(shí),將執(zhí)行子類(lèi)中的方法,而不是父類(lèi)中的方法。方法重寫(xiě)概念方法重寫(xiě)必須滿足一些規(guī)則,如方法名、參數(shù)列表必須與父類(lèi)中被重寫(xiě)的方法相同,訪問(wèn)權(quán)限不能低于父類(lèi)中被重寫(xiě)的方法的訪問(wèn)權(quán)限,返回類(lèi)型必須是父類(lèi)中被重寫(xiě)方法的返回類(lèi)型的子類(lèi)或相同類(lèi)型等。方法重寫(xiě)規(guī)則向上轉(zhuǎn)型是指將子類(lèi)對(duì)象賦值給父類(lèi)引用變量的操作。由于子類(lèi)對(duì)象是父類(lèi)對(duì)象的一種特殊形式,因此可以將子類(lèi)對(duì)象視為父類(lèi)對(duì)象進(jìn)行處理。在向上轉(zhuǎn)型過(guò)程中,可以調(diào)用父類(lèi)中定義的方法和屬性,但是不能調(diào)用子類(lèi)中特有的方法和屬性。向上轉(zhuǎn)型概念向下轉(zhuǎn)型是指將父類(lèi)引用變量強(qiáng)制轉(zhuǎn)換為子類(lèi)引用變量的操作。在向下轉(zhuǎn)型過(guò)程中,可以調(diào)用子類(lèi)中特有的方法和屬性。但是需要注意的是,如果父類(lèi)引用變量實(shí)際上引用的是父類(lèi)對(duì)象而不是子類(lèi)對(duì)象,那么在進(jìn)行向下轉(zhuǎn)型時(shí)將會(huì)拋出ClassCastException異常。因此,在進(jìn)行向下轉(zhuǎn)型之前,最好使用instanceof運(yùn)算符進(jìn)行類(lèi)型檢查。向下轉(zhuǎn)型概念向上轉(zhuǎn)型和向下轉(zhuǎn)型操作06總結(jié)回顧與拓展延伸CHAPTER第二季度第一季度第四季度第三季度繼承的概念繼承的語(yǔ)法方法的重寫(xiě)super關(guān)鍵字關(guān)鍵知識(shí)點(diǎn)總結(jié)繼承是面向?qū)ο缶幊讨械囊粋€(gè)重要概念,它允許一個(gè)類(lèi)(子類(lèi))繼承另一個(gè)類(lèi)(父類(lèi))的屬性和方法,從而實(shí)現(xiàn)代碼的復(fù)用和模塊化。在Java中,使用`extends`關(guān)鍵字來(lái)實(shí)現(xiàn)類(lèi)的繼承。子類(lèi)可以繼承父類(lèi)的非私有成員變量和非私有方法。當(dāng)子類(lèi)需要改變繼承自父類(lèi)的某個(gè)方法的行為時(shí),可以通過(guò)方法重寫(xiě)來(lái)實(shí)現(xiàn)。方法重寫(xiě)要求子類(lèi)的方法與父類(lèi)的方法具有相同的方法名、參數(shù)列表和返回類(lèi)型。super關(guān)鍵字用于引用父類(lèi)的成員變量和方法。在子類(lèi)中,可以使用super關(guān)鍵字來(lái)調(diào)用父類(lèi)的構(gòu)造方法、訪問(wèn)父類(lèi)的成員變量和方法。繼承與組合的選擇在實(shí)際編程中,有時(shí)容易混淆繼承和組合的使用。繼承是一種“是”關(guān)系,而組合是一種“有”關(guān)系。當(dāng)兩個(gè)類(lèi)之間存在“是”關(guān)系時(shí),應(yīng)該使用繼承;當(dāng)兩個(gè)類(lèi)之間存在“有”關(guān)系時(shí),應(yīng)該使用組合。多重繼承的問(wèn)題Java不支持多重繼承,即一個(gè)類(lèi)不能同時(shí)繼承多個(gè)父類(lèi)。這是因?yàn)槎嘀乩^承會(huì)帶來(lái)一些復(fù)雜性和歧義性,例如鉆石問(wèn)題。訪問(wèn)權(quán)限的問(wèn)題在繼承中,子類(lèi)可以訪問(wèn)父類(lèi)的非私有成員變量和非私有方法。但是,如果父類(lèi)中的成員變量或方法被聲明為`private`,則子類(lèi)無(wú)法直接訪問(wèn)它們。常見(jiàn)誤區(qū)剖析010203學(xué)習(xí)接口和抽象類(lèi)的使用接口和抽象類(lèi)是Java中實(shí)現(xiàn)多態(tài)性的另外兩種方式。接口定義了一組方法的規(guī)范,而抽象類(lèi)則提供了一組方法的默認(rèn)實(shí)現(xiàn)。通過(guò)學(xué)習(xí)和使用接口和抽象類(lèi),可以進(jìn)一步提高代碼的靈活性和可維護(hù)性。了解設(shè)計(jì)模式設(shè)計(jì)模式是解
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度企業(yè)員工食宿補(bǔ)貼與環(huán)保食堂建設(shè)協(xié)議
- 4S店裝修協(xié)議范本及明細(xì)
- 2025年度工業(yè)用水節(jié)水項(xiàng)目投資及水費(fèi)補(bǔ)貼協(xié)議
- 2025年度房屋贈(zèng)予與繼承權(quán)確認(rèn)協(xié)議
- 2025年度房產(chǎn)贈(zèng)與條件限制協(xié)議書(shū)
- 個(gè)人房東裝修合同范本
- 安全費(fèi)用管理2025年度合同執(zhí)行風(fēng)險(xiǎn)防控
- 2025年度北京共有產(chǎn)權(quán)房買(mǎi)賣(mài)合同自行成交版
- 電子商務(wù)與教育領(lǐng)域的結(jié)合模式
- 2025年度商業(yè)地產(chǎn)合租運(yùn)營(yíng)及安全保障服務(wù)協(xié)議
- 華為全屋智能試題
- 品牌策劃大賽獲獎(jiǎng)案例范文
- 自媒體賬號(hào)合作運(yùn)營(yíng)協(xié)議
- 煙草專(zhuān)賣(mài)零售許可證新辦申請(qǐng)表
- 旅游學(xué)概論(郭勝 第五版) 課件 第5、6章 旅游業(yè)、旅游市場(chǎng)
- 安全隱患規(guī)范依據(jù)查詢(xún)手冊(cè)22大類(lèi)12萬(wàn)字
- (2024年)精美網(wǎng)絡(luò)安全講座
- 2023屆新高考英語(yǔ)語(yǔ)法填空分類(lèi)強(qiáng)化100題 語(yǔ)法填空之現(xiàn)在分詞過(guò)去分詞100題(思維導(dǎo)圖+三年真題+模擬)
- JGJ79-2012 建筑地基處理技術(shù)規(guī)范
- 柱塞泵工作原理動(dòng)畫(huà)演示
- 某電廠180m鋼筋混凝土煙囪施工方案
評(píng)論
0/150
提交評(píng)論