14繼承PPT幻燈片.pptx_第1頁
14繼承PPT幻燈片.pptx_第2頁
14繼承PPT幻燈片.pptx_第3頁
14繼承PPT幻燈片.pptx_第4頁
14繼承PPT幻燈片.pptx_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、繼承,1/38,本章目標(biāo),掌握繼承的優(yōu)點(diǎn)和實(shí)現(xiàn) 掌握子類重寫父類方法 掌握繼承下構(gòu)造方法的執(zhí)行過程 掌握抽象類和抽象方法的使用 掌握final修飾屬性、方法和類,2/38,為什么使用繼承 2-1,這兩個(gè)類圖有什么問題?,3/38,將重復(fù)代碼 抽取到父類中,問題,使用繼承優(yōu)化設(shè)計(jì),為什么使用繼承 2-2,使用繼承優(yōu)化后:,4/38,減少代碼量,方便修改代碼,子類與父類是is-a關(guān)系,如何使用繼承,使用繼承 編寫父類 編寫子類,繼承父類,5/38,class Pet /公共的屬性和方法 ,class Dog extends Pet /子類特有的屬性和方法 ,class Penguin extend

2、s Pet ,只能繼承一個(gè)父類,繼承關(guān)鍵字,理解繼承4-1,子類訪問父類成員 訪問父類構(gòu)造方法 訪問父類屬性 訪問父類方法,6/38,使用super關(guān)鍵字, super代表父類對象,;,super.print();,super(); super(name);,在子類構(gòu)造方法中調(diào)用且必須是第一句,理解繼承4-2,子類可以繼承父類的所有些資源嗎?,7/38,提問,構(gòu)造方法,子類與父類不在同包, 使用默認(rèn)訪問權(quán)限的成員,private成員,不能被繼承的父類成員,理解繼承4-3,訪問修飾符protected 可以修飾屬性和方法 本類、同包、子類可以訪問 訪問修飾符總結(jié),8/38,理

3、解繼承4-4,多重繼承關(guān)系的初始化順序是怎樣的?,9/38,子類構(gòu)造 方法,子類屬性,父類構(gòu)造 方法,父類屬性,提問,在何處使用繼承,何時(shí)使用繼承? 繼承與真實(shí)世界類似 只要說“貓是哺乳動(dòng)物”,貓的很多屬性、行為 就不言自明了 藏獒是一種狗 繼承是代碼重用的一種方式,10/38,將子類共有的屬性和行為放到父類中,符合is-a關(guān)系的設(shè)計(jì)使用繼承,問題,小結(jié)2-1,繼承使用什么關(guān)鍵字? 子類可以繼承父類的哪些成員? 使用繼承有什么好處?,11/38,提問,小結(jié)2-2,閱讀代碼,說出運(yùn)行結(jié)果,12/38,class Car private int site = 4; /座位數(shù) Car() Syste

4、m.out.println (載客量是+site+人); public void setSite(int site) this.site = site; void print() System.out.print(載客量是+site+人); ,class Bus extends Car Bus(int site) setSite(site); ,public static void main(String args) Bus bus = new Bus(20); bus.print(); ,載客量是4人 載客量是20人,代碼閱讀,方法重寫,使用繼承后效果,13/38,子類重寫父類方法,問題,調(diào)

5、用父類的print()方法,不能顯示Dog的strain信息和Peguin的sex信息,如何實(shí)現(xiàn)如下效果呢?,小結(jié)2-1,構(gòu)造方法也會(huì)被重寫嗎? 方法重寫的規(guī)則 方法名相同 參數(shù)列表相同 返回值類型相同或者是其子類; 訪問權(quán)限不能嚴(yán)于父類 方法重載與方法重寫,14/38,提問,不能被繼承, 因此不能重寫,小結(jié)2-2,super關(guān)鍵字來訪問父類的成員 super只能出現(xiàn)在子類的方法和構(gòu)造方法中 super調(diào)用構(gòu)造方法時(shí),只能是第一句 super不能訪問父類的private成員,15/38,操作優(yōu)化電子寵物系統(tǒng)2-1,訓(xùn)練要點(diǎn): 繼承 子類重寫父類方法 理解繼承中的初始化過程 需求說明: 優(yōu)化電子

6、寵物系統(tǒng) 使用繼承實(shí)現(xiàn)Dog類和Penguin類 打印寵物信息,16/38,指導(dǎo),操作優(yōu)化電子寵物系統(tǒng)2-2,實(shí)現(xiàn)思路:,17/38,繼承,指導(dǎo),抽象類,以下代碼有什么問題? Java中使用抽象類,限制實(shí)例化,18/38,Pet pet = new Pet (貝貝,20,40); pet.print();,實(shí)例化Pet沒有意義,public abstract class Pet ,問題,抽象方法,以下代碼有什么問題? abstract也可用于方法抽象方法 抽象方法沒有方法體 抽象方法必須在抽象類里 抽象方法必須在子類中被實(shí)現(xiàn),除非子類是抽象類,19/38,public abstract voi

7、d print();,沒有方法體,public abstract class Pet public void print() / ,每個(gè)子類的實(shí)現(xiàn)不同,問題,操作抽象Pet類2-1,訓(xùn)練要點(diǎn): 抽象類的定義和繼承 抽象方法定義和重寫 需求說明: 修改Pet類為抽象類 修改Pet類的print()方法為抽象方法 輸出Dog信息,20/38,指導(dǎo),操作抽象Pet類2-2,實(shí)現(xiàn)思路 修改Pet類為抽象類,修改print()為抽象方法 Dog類繼承Pet類,實(shí)現(xiàn)print()方法 運(yùn)行測試 注釋掉Dog類中print()方法,運(yùn)行測試類查看錯(cuò)誤信息 編寫注釋,21/38,指導(dǎo),final用法,Peng

8、uin類不希望再被其他類繼承? 使用final類 方法不希望被重寫? 使用final方法 屬性值不希望被修改? 使用常量,22/38,public final class Penguin extends Pet / ,最終版的類,public final void print () / ,最終版的方法,public class Penguin final String home =南極;/ 居住地 public void setHome(String name) this.home=home; /錯(cuò)誤,不可再賦值 ,最終版的屬性值,問題,常見錯(cuò)誤,請指出下面代碼的錯(cuò)誤,23/38,class

9、Dog String name; public Dog(String name) = name; class Test public static void main(String args) final Dog dog = new Dog(歐歐); = 美美; dog = new Dog(亞亞); ,使用final修飾引用型變量, 變量不可以再指向另外的對象,使用final修飾引用型變量,變量的值是固定不變的, 而變量所指向的對象的屬性值是可變的,綜合案例,某汽車租賃公司出租多種車輛,車型及租金情況如下: 編寫程序?qū)崿F(xiàn)計(jì)算租賃價(jià),24/38,問題,總結(jié)2-1,繼承 符合is-a關(guān)系 使用extends關(guān)鍵字 代碼復(fù)用 方法重寫的規(guī)則 方法名相同 參數(shù)列表相同 返回值類型相同或者是其子類 訪問權(quán)限不能嚴(yán)于父類 super關(guān)鍵字來訪問父類的成員 super只能出現(xiàn)在子類的方法和構(gòu)造方法中 super調(diào)用構(gòu)造方法時(shí),只能是第一句 super不能訪問子類的private成

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論