java課件-繼承和多態(tài).ppt

java課件-繼承和多態(tài).ppt

ID:51966993

大?。?60.31 KB

頁(yè)數(shù):27頁(yè)

時(shí)間:2020-03-26

java課件-繼承和多態(tài).ppt_第1頁(yè)
java課件-繼承和多態(tài).ppt_第2頁(yè)
java課件-繼承和多態(tài).ppt_第3頁(yè)
java課件-繼承和多態(tài).ppt_第4頁(yè)
java課件-繼承和多態(tài).ppt_第5頁(yè)
資源描述:

《java課件-繼承和多態(tài).ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)

1、類的繼承被繼承的類稱為父類或者超類或者基類繼承父類的類稱為子類或者派生類執(zhí)行繼承時(shí),子類將獲得父類的所有成員(包括private的成員),并具有自身特有的屬性。繼承是面向?qū)ο缶幊碳夹g(shù)的一塊基石,它允許創(chuàng)建分等級(jí)層次的類。運(yùn)用繼承,可以創(chuàng)建一個(gè)通用類定義一系列一般特性。該類可以被更具體的類繼承Emoloyee類:namesexWorker類:categorydressAllowanceOfficer類:empClassvehicle職員類,具有姓名和性別兩個(gè)屬性工人類,繼承了父類的姓名和性別屬性外還包含類別和是否有服裝津貼屬性主任類,還包含級(jí)

2、別和是否配備交通工具屬性extends關(guān)鍵字extends關(guān)鍵字用于繼承類。聲明一個(gè)繼承父類的類的通常形式如下:classsubclass-nameextendssuperclass-name{//類體}沒有extends,默認(rèn)父類為Object一個(gè)類只能有一個(gè)父類,即單繼承子類繼承父類的全部成員注意繼承示例classEmployee{Stringname;//姓名charsex;//性別Employee(Stringn,chars){name=n;sex=s;}publicStringgetName(){returnname;}publi

3、cchargetSex(){returnsex;}}classWorkerextendsEmployee{charcategory;//類別booleandressAllowance;//是否提供服裝津貼Worker(Stringn,chars,charc,booleand){super(n,s);category=c;dressAllowance=d;}publicchargetCategory(){returncategory;}publicbooleangetAll(){returndressAllowance;}}classInhe

4、Demo{publicstaticvoidmain(Stringargs[]){Workerw=newWorker("M.John",'M','B',true);System.out.println("工人信息");System.out.println("姓名:"+w.getName());System.out.println("性別:"+w.getSex());System.out.println("類別:"+w.getCategory());if(w.getAll())System.out.println("提供服裝津貼");elseS

5、ystem.out.println(“未提供服裝津貼”);}}繼承分析在子類中不能直接訪問父類中的私有成員子類和父類之間應(yīng)該有“IS-A”關(guān)系不要濫用繼承,只有在分類學(xué)上有意義時(shí),才應(yīng)該使用繼承子類具有擴(kuò)展超類的責(zé)任繼承的目的就是為了代碼復(fù)用里式代換原則定義:無論何時(shí),只要程序需要一個(gè)超類對(duì)象,那么就可以用一個(gè)子類對(duì)象來替代它。Employeee;e=newEmployee();//需要超類Employee對(duì)象e=newManager();//用子類對(duì)象替換掉超類對(duì)象注意:反過來是不行的多態(tài)和動(dòng)態(tài)綁定聲明類型:對(duì)象變量被聲明時(shí)的類型實(shí)際類型

6、:對(duì)象變量實(shí)際指向的對(duì)象類型一個(gè)對(duì)象變量可以指向多種實(shí)際類型的現(xiàn)象稱為“多態(tài)”在運(yùn)行時(shí)自動(dòng)選擇正確的方法進(jìn)行調(diào)用的現(xiàn)象稱為“動(dòng)態(tài)綁定”Java根據(jù)對(duì)象的實(shí)際類型來進(jìn)行方法調(diào)用方法重載(overloading)方法重載是Java實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)性機(jī)制的一種方式。同一個(gè)類中多個(gè)方法有相同的名字,不同的參數(shù)列表,這種情況稱為方法重載。當(dāng)重載方法被調(diào)用時(shí),Java編譯器根據(jù)參數(shù)的類型和數(shù)量來確定實(shí)際調(diào)用哪個(gè)重載方法的版本。方法重載不考慮方法的返回類型。重載構(gòu)造函數(shù)一個(gè)類可以有多個(gè)構(gòu)造函數(shù)如果一個(gè)類沒有定義一個(gè)構(gòu)造函數(shù),Java編譯器將為這個(gè)類自動(dòng)

7、提供缺省構(gòu)造函數(shù)(即無參的構(gòu)造函數(shù))缺省構(gòu)造函數(shù)將成員變量的值初始化為缺省值一旦創(chuàng)建了自己的構(gòu)造函數(shù),Java編譯器將不再自動(dòng)提供無參的構(gòu)造函數(shù)。重載構(gòu)造函數(shù)提供了一組創(chuàng)建對(duì)象的方式,可以根據(jù)需要決定是否帶初始參數(shù)。publicclassconstructOverload{intx;constructOverload(){x=0;System.out.println("不帶參數(shù)的構(gòu)造函數(shù)");}constructOverload(intx){this.x=x;System.out.println("帶一個(gè)參數(shù)的構(gòu)造函數(shù)");}}方法覆蓋(o

8、verride)方法覆蓋是Java實(shí)現(xiàn)多態(tài)性機(jī)制的另一種方式。在類層次結(jié)構(gòu)中,如果子類中的一個(gè)方法與父類中的方法有相同的返回類型、相同的方法名并具有相同數(shù)量和類型的參數(shù)列表,這種

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫(kù)負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。