面向?qū)ο骿ava實現(xiàn)03繼承的應(yīng)用_第1頁
面向?qū)ο骿ava實現(xiàn)03繼承的應(yīng)用_第2頁
面向?qū)ο骿ava實現(xiàn)03繼承的應(yīng)用_第3頁
面向?qū)ο骿ava實現(xiàn)03繼承的應(yīng)用_第4頁
面向?qū)ο骿ava實現(xiàn)03繼承的應(yīng)用_第5頁
已閱讀5頁,還剩16頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

Java面向?qū)ο蟪绦蛟O(shè)計03繼承的應(yīng)用☆Java程序設(shè)計☆2章節(jié)內(nèi)容理解什么是繼承,繼承的好處繼承在java中的實現(xiàn)如何創(chuàng)建子類子類成員的特點如何在子類中訪問父類多態(tài)在Java中的實現(xiàn)方法重寫final關(guān)鍵字的使用修飾類修飾屬性修飾方法☆Java程序設(shè)計☆3案例大學(xué)里有英語系、計算機系、管理系、旅游系,每個系開設(shè)的課程都包含了數(shù)學(xué)、語文、英語,除此,每個系還要學(xué)習(xí)相應(yīng)的專業(yè)課英語系:翻譯學(xué)計算機系:編程管理系:經(jīng)濟學(xué)旅游系:心理學(xué)作為不同系的學(xué)生,都可以擁有自己的姓名、年齡和班級,都要上那些公共課和本專業(yè)的專業(yè)課☆Java程序設(shè)計☆4英語系學(xué)生類classEnglishStudent{StringstuName,stuClass;intstuAge;voidmath(){}voidchinese(){}voidenglish(){}voidtranslate(){}}☆Java程序設(shè)計☆5計算機系學(xué)生類classComputerStudent{StringstuName,stuClass;intstuAge;voidmath(){}voidchinese(){}voidenglish(){}voidprogram(){}}☆Java程序設(shè)計☆6管理系學(xué)生類classManageStudent{StringstuName,stuClass;intstuAge;voidmath(){}voidchinese(){}voidenglish(){}voideconomics(){}}☆Java程序設(shè)計☆7旅游系學(xué)生classTourismStudent{StringstuName,stuClass;intstuAge;voidmath(){}voidchinese(){}voidenglish(){}voidpsychology(){}}☆Java程序設(shè)計☆8案例分析上面四個類都有stuName、stuClass、stuAge這些屬性,學(xué)數(shù)學(xué)、學(xué)語文、學(xué)英語這些方法。這些屬性和方法都是重復(fù)定義的。為了達到代碼的可重用性,我可以把這些相同的屬性和方法給提取出來,單獨作一個類:學(xué)生類,然后由英語系學(xué)生類、計算機系學(xué)生類、管理系學(xué)生類、旅游系學(xué)生類繼承它,在每個子類里描述和父類不同的部分就行了☆Java程序設(shè)計☆9繼承在Java中的實現(xiàn)首先編寫一個父類再寫子類,使用extends關(guān)鍵字繼承父類語法

class子類extends父類{

類體;}☆Java程序設(shè)計☆10案例優(yōu)化classStudent{StringstuName,stuClass;intstuAge;voidmath(){}voidchinese(){}voidenglish(){}}classEnglishStudentextendsStudent{voidtranslate(){}}classComputerStudentextendsStudent{ voidprogram(){}}classManageStudentextendsStudent{voideconomics(){}}classTourismStudentextendsStudent{voidpsychology(){}}☆Java程序設(shè)計☆11案例解析這樣的代碼看起來就簡潔多了。在父類里定義的方法和屬性,子類都可以通過繼承的方式擁有。所以使用Java面向?qū)ο罄^承的特性,可以大大提高代碼的重用性。同時,這種方式也便于擴展,如果大學(xué)里再多開設(shè)一個系,那么創(chuàng)建該系的學(xué)生類,繼承父類后,在子類描述自己所擁有的特殊方法和屬性就行了。☆Java程序設(shè)計☆12繼承一個新類可以從現(xiàn)有的類中派生,這個過程稱為類繼承?,F(xiàn)有類稱為新類的父類(基類)新類稱為現(xiàn)有類的子類(派生類)在有繼承關(guān)系的兩個類,可以描述子類繼承了父類父類派生出子類☆Java程序設(shè)計☆13圖示父類

子類父類/子類是相對的Middle類Cooker類Doctor類Person類Employee類Student類College類☆Java程序設(shè)計☆14繼承的特點Java中的繼承只能是單一繼承,即一個子類只能有一個父類,反之,一個父類可以被多個子類繼承當(dāng)一個子類繼承了父類之后父類的方法和屬性只能部分被子類對象繼承父類的構(gòu)造方法不能被它的子類繼承在子類中還可以添加自己的屬性和方法☆Java程序設(shè)計☆15子類構(gòu)造方法子類對象實例化時會先去調(diào)用父類的默認構(gòu)造方法:子類需要通過父類構(gòu)造方法的調(diào)用來完成從父類繼承下來的屬性初始化。再調(diào)用本類的構(gòu)造方法若父類中沒有默認構(gòu)造方法時,需要在子類的構(gòu)造方法中使用super()明確指定出要調(diào)用父類的哪個構(gòu)造方法super()語句必須是構(gòu)造方法中的第一條語句☆Java程序設(shè)計☆16方法重寫多態(tài)的體現(xiàn)重寫在程序里體現(xiàn)在父類和子類之間父類有一個方法,當(dāng)子類也擁有相同的方法時這就叫重寫子類和父類的方法名,返回值類型和參數(shù)完全相用子類對象調(diào)用子類中的重寫方法可以在子類中使用super.方法名()調(diào)用父類中的方法☆Java程序設(shè)計☆17示例public

class

Person{

public

void

hobby(){

System.out.println("吃東西");

}}class

Child

extends

Person{

public

void

hobby(){

System.out.println("玩游戲");

}}classstudent

extends

Person{

public

void

hobby(){

System.out.println(“畫畫");

}}☆Java程序設(shè)計☆18多態(tài)的應(yīng)用我們說馬是動物,牛也是動物,人也是動物。說明動物這個類型可以指向不同類的對象。但反過來,動物是馬,動物是牛這個說法就不成立了。因為馬這個類型不能指向動物。所以父類的類型可以指向子類的對象,但子類的類型不能指向父類的對象允許創(chuàng)建父類的對象,實例化為子類,這種情況下,該對象只能調(diào)用子類重寫父類中的方法,不能調(diào)用子類中獨有的方法☆Java程序設(shè)計☆19示例public

class

Person{

void

walk(){

System.out.println("用腿走路");

}

void

hobby(){

System.out.println("吃東西");

}

}class

Child

extends

Person{

public

void

hobby(){

System.out.println("玩游戲");

}}classTest{

publicstaticvoidmain(String[]args){

Person

p=newChild();

p.hobby();//結(jié)果是“玩游戲”,因為雖然p是父類的變量,但指向是Child這個子類的對象,而Child這個子類重寫了hobby這個方法,所以優(yōu)先調(diào)用子類的方法

p.walk();//結(jié)果是“用腿走路”,因為Child這個子類并沒有重寫父類walk的方法,所以調(diào)用的是繼承于父類walk的方法

}}☆Java程序設(shè)計☆20final修飾符使用final修飾的方法不能被子類改寫。使用final修飾屬性稱為常量在定義屬性的同時賦值在構(gòu)造方法中對其賦值該值不可以在使用的過程中被更改。使用final

溫馨提示

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

評論

0/150

提交評論