Java語言程序設(shè)計(jì)(第二版)課件第5章 繼承與接口_第1頁
Java語言程序設(shè)計(jì)(第二版)課件第5章 繼承與接口_第2頁
Java語言程序設(shè)計(jì)(第二版)課件第5章 繼承與接口_第3頁
Java語言程序設(shè)計(jì)(第二版)課件第5章 繼承與接口_第4頁
Java語言程序設(shè)計(jì)(第二版)課件第5章 繼承與接口_第5頁
已閱讀5頁,還剩14頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

繼承與接口第5章2目標(biāo)繼承和多態(tài)的概念及其實(shí)現(xiàn)。this和super的使用。包和接口的使用。35.1.1類繼承的實(shí)現(xiàn)2-1被繼承的類稱為父類繼承父類的類稱為子類執(zhí)行繼承時(shí),子類將獲得父類的屬性,并具有自身特有的屬性。

Emoloyee類:namesexWorker類:categorydressAllowanceOfficer類:empClassvehicle工人類,繼承了父類的姓名和性別屬性外還包含類別和是否有服裝津貼屬性主任類,還包含級別和是否配備交通工具屬性職員類,具有姓名和性別兩個(gè)屬性45.1.1類繼承的實(shí)現(xiàn)2-2extends關(guān)鍵字用于繼承類。聲明一個(gè)繼承父類的類的通常形式如下:classsubclass-nameextendssuperclass-name{//類體}

沒有extends,默認(rèn)父類為Object只能有一個(gè)父類,即單繼承子類繼承父類的全部成員注意55.1.2this和super關(guān)鍵字1.this的使用(1)訪問當(dāng)前對象的數(shù)據(jù)成員(2)訪問當(dāng)前對象的成員變量(3)重載時(shí)用來引用同類的其他構(gòu)造方法2.super的使用(1)訪問直接基類中被隱藏的數(shù)據(jù)成員(2)調(diào)用直接基類中被重寫的成員方法(3)調(diào)用直接基類的構(gòu)造方法65.1.3抽象類和抽象方法定義目的是提供可由其子類共享的一般形式。抽象類不能實(shí)例化。抽象方法沒有函數(shù)體。抽象方法必須在子類中給出具體實(shí)現(xiàn)。抽象類中可以沒有抽象方法,有抽象方法的類一定是抽象類。抽象類必須繼承,子類根據(jù)自身需要擴(kuò)展抽象類。abstract不能和final疊用修飾類。不能有private成員變量和方法。不能和private、static、final疊用修飾方法。75.1.4類對象之間的類型轉(zhuǎn)換子類對象和基類對象之間的轉(zhuǎn)換:(1)子類對象可以隱式,也可以轉(zhuǎn)換為基類對象(2)處于相同類層次的類對象之間不能進(jìn)行轉(zhuǎn)換(3)子類對象在一定的條件下可以轉(zhuǎn)換成基類對象,但必須使用強(qiáng)制類型轉(zhuǎn)換。85.2.1方法重載方法重載是Java實(shí)現(xiàn)面向?qū)ο蟮亩鄳B(tài)性機(jī)制的一種方式。同一個(gè)類中多個(gè)方法有相同的名字,不同的參數(shù)列表,這種情況稱為方法重載。返回類型不同并不足以構(gòu)成方法重載。當(dāng)重載方法被調(diào)用時(shí),編譯器根據(jù)參數(shù)的類型和數(shù)量來確定實(shí)際調(diào)用哪個(gè)重載方法的版本。95.2.2方法重寫方法重寫是Java實(shí)現(xiàn)多態(tài)性機(jī)制的另一種方式。在類層次結(jié)構(gòu)中,如果子類中的一個(gè)方法與父類中的方法有相同的方法名并具有相同數(shù)量和類型的參數(shù)列表,這種情況稱為方法重寫。重寫方法通過父類引用被調(diào)用,Java根據(jù)當(dāng)前被引用對象的類型來決定執(zhí)行哪個(gè)版本的方法??赏ㄟ^super關(guān)鍵字調(diào)用直屬父類中被重寫的方法。子類定義與父類同名的變量,使父類變量隱藏,但仍有自己的空間,在子類中可調(diào)用。子類重寫父類方法,會(huì)清除父類空間,在子類中不存在。105.3.1接口的定義[修飾符]interface接口名稱{[public][static][final]變量名=初值;//靜態(tài)常量[public][abstract][native]返回值方法名([參數(shù)表])throws[異常列表]//方法}由于接口中定義的方法都是抽象、公有的,常量都是靜態(tài)、公有的,所以修飾符可以省略。說明:(1)通常接口的名字以able或ible結(jié)尾;(2)可以使用extends來繼承接口的常量和抽象方法,但它與類中的extends不同,它可以有多個(gè)父接口,各父接口間用逗號隔開;(3)接口中的所有常量必須是publicstaticfinal,方法必須是publicabstract,這是系統(tǒng)默認(rèn)的,不管你在定義接口時(shí),寫不寫修飾符都是一樣的。(4)native要甚用。115.3.2接口的實(shí)現(xiàn)在類的聲明中使用implements關(guān)鍵字來實(shí)現(xiàn)接口,一個(gè)類可以同時(shí)實(shí)現(xiàn)多個(gè)接口,各接口間用“,”隔開。classclassnameimplementsinterfacename{//重寫接口中的方法;}說明:(1)若實(shí)現(xiàn)接口的類不是抽象類,則必須實(shí)現(xiàn)所有接口的所有方法,即為所有的抽象方法定義方法體。(2)一個(gè)類在實(shí)現(xiàn)某接口抽象方法時(shí),必須使用完全相同的方法名,參數(shù)列表。(3)接口的抽象方法的訪問控制符已指定為public,所以類在實(shí)現(xiàn)時(shí),必須顯示的使用public修飾符,否則被警告縮小了接口中定義的方法的訪問控制范圍。12實(shí)例:接口的定義和實(shí)現(xiàn)interfaceA{doubleg=9.8;voidshow();}classBimplementsA{publicvoidshow(){System.out.println(“g=“+g);}}classInterfaceTest{publicstaticvoidmain(Stringargs[]){Bb=newB();b.show();}}135.3.3接口的繼承interfaceA{intsub(inta,intb);}interfaceBextendsA{intadd(inta,intb);}interfaceCextendsB{intmul(inta,intb);}組合:interfaceA{intsub(inta,intb);}interfaceB{intadd(inta,intb);}interfaceCextendsA,B{intmul(inta,intb);}145.3.4接口的多態(tài)interfaceviecle{abstractbooleanstart();}classCarimplementsviecle{booleanstart(){//發(fā)動(dòng)引擎}}classShipimplementsviecle{booleanstart(){//拋錨}}155.4.1包的創(chuàng)建(1)缺省情況下為無名包(2)有名包的創(chuàng)建:使用package語句 如:packagepname

或packagedir1.dir2.pname包就是一個(gè)文件夾,里面存放.class文件,包中的“.”號表示子文件夾。165.4.2包的引用(1)使用包名、類名前綴 例如:mypack1.mypack2.Myclass(2)加載引用:使用import語句 格式:importmypack1.mypack2.Myclass

或importmypack.mypack2.*(3)直接引用:在同一文件夾下175.4.3設(shè)置CLASSPATH環(huán)境變量CLASSPATH變量指明“.class”文件存放的位置。編譯時(shí):javac–d

CLASSPATH路徑

Myclass.java例如:javac–dd:\javamyclass.java則直接在d:\java下創(chuàng)建在myclass.j

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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

提交評論