第5章-繼承與多態(tài)-Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程-微課視頻版-程杰-清華大學(xué)出版社_第1頁(yè)
第5章-繼承與多態(tài)-Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程-微課視頻版-程杰-清華大學(xué)出版社_第2頁(yè)
第5章-繼承與多態(tài)-Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程-微課視頻版-程杰-清華大學(xué)出版社_第3頁(yè)
第5章-繼承與多態(tài)-Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程-微課視頻版-程杰-清華大學(xué)出版社_第4頁(yè)
第5章-繼承與多態(tài)-Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程-微課視頻版-程杰-清華大學(xué)出版社_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

JAVA面向?qū)ο蟪绦蛟O(shè)計(jì)教程第5章繼承與多態(tài)第5章繼承與多態(tài)5.1繼承5.2抽象類5.3接口5.4應(yīng)用實(shí)例:POS刷卡機(jī)第5章繼承與多態(tài)繼承性是面向?qū)ο蟮闹匾匦?。繼承允許一個(gè)類成為另一個(gè)類的子類,子類繼承了父類的所有特性,并且可以擴(kuò)展出自己特征。類的繼承性提供了一種明確描述共性的方法,減少了類似的重復(fù)說(shuō)明。繼承機(jī)制提高了軟件的可用性、代碼的復(fù)用性以及界面的一致性。通過(guò)使用子類,可以實(shí)現(xiàn)繼承。從最一般的類開始,逐步特殊化,可派生出一系列的子類。父類和子類之間的關(guān)系呈現(xiàn)出層次化。同時(shí),繼承實(shí)現(xiàn)的代碼復(fù)用,使程序復(fù)雜度線性地增長(zhǎng),而不是呈幾何級(jí)數(shù)增長(zhǎng)。在Java中任何一個(gè)類都有父類(除了object類以外)。Java只支持單重繼承,大大降低了繼承的復(fù)雜度。5.1繼承由繼承而得到的類稱為子類,被繼承的類稱為父類(超類)。Java不支持多重繼承(子類只能有一個(gè)父類)。在類的聲明中,通過(guò)使用關(guān)鍵字extends來(lái)聲明一個(gè)類的子類,格式如下:class子類名extends父類名{

…}5.1.1子類與父類類可以有兩種重要的成員:成員變量和方法。子類的成員中有一部分是子類自己聲明定義的,另一部分是從它的父類繼承的。那么,什么叫繼承呢?所謂子類繼承父類的成員變量作為自己的一個(gè)成員變量,就好像它們是在子類中直接聲明一樣,可以被子類中自己聲明的任何實(shí)例方法操作,也就是說(shuō),一個(gè)子類繼承的成員應(yīng)當(dāng)是這個(gè)類的完全意義的成員,如果子類中聲明的實(shí)例方法不能操作父類的某個(gè)成員變量,該成員變量就沒(méi)有被子類繼承;同樣子類繼承父類的方法作為子類中的一個(gè)方法,就像它們是在子類中直接聲明一樣,可以被子類中自己聲明的任何實(shí)例方法調(diào)用。5.1.2類的繼承性當(dāng)用子類的構(gòu)造方法創(chuàng)建一個(gè)子類的對(duì)象時(shí),子類的構(gòu)造方法總是先調(diào)用父類的某個(gè)構(gòu)造方法,也就是說(shuō),如果子類的構(gòu)造方法沒(méi)有明顯地指明使用父類的哪個(gè)構(gòu)造方法,子類就調(diào)用父類不帶參數(shù)的構(gòu)造方法。因此,當(dāng)用子類創(chuàng)建對(duì)象時(shí),不僅子類中聲明的成員變量被分配了內(nèi)存,而且父類的成員變量也都分配了內(nèi)存空間,但只將其中一部分(子類繼承的那部分)作為分配給子類對(duì)象的變量。5.1.3子類對(duì)象的構(gòu)造過(guò)程子類也可以隱藏繼承的成員變量,對(duì)于子類可以從父類繼承成員變量,只要子類中定義的成員變量和父類中的成員變量同名時(shí),子類就隱藏了繼承的成員變量,即子類對(duì)象以及子類自己聲明定義的方法操作與父類同名的成員變量是指子類重新聲明定義的這個(gè)成員變量。5.1.4成員變量的隱藏和方法重寫子類可以隱藏從父類繼承的成員變量和方法,如果在子類中想使用被子類隱藏的成員變量或方法,就可以使用關(guān)鍵字super。1.使用super調(diào)用父類的構(gòu)造方法2.使用super操作被隱藏的成員變量和方法5.1.5super關(guān)鍵字對(duì)象的上轉(zhuǎn)型對(duì)象的實(shí)體是子類負(fù)責(zé)創(chuàng)建的,但上轉(zhuǎn)型對(duì)象會(huì)失去原對(duì)象的一些屬性和功能(上轉(zhuǎn)型對(duì)象相當(dāng)于子類對(duì)象的一個(gè)“簡(jiǎn)化”對(duì)象)。上轉(zhuǎn)型對(duì)象具有如下特點(diǎn):(1)上轉(zhuǎn)型對(duì)象不能操作子類新增的成員變量(失掉了這部分屬性);不能調(diào)用子類新增的方法(失掉了一些功能)。(2)上轉(zhuǎn)型對(duì)象可以訪問(wèn)子類繼承或隱藏的成員變量,也可以調(diào)用子類繼承的方法或子類的重寫方法。上轉(zhuǎn)型對(duì)象操作子類繼承的方法或子類重寫的方法,其作用等價(jià)于子類對(duì)象去調(diào)用這些方法。因此,如果子類重寫了父類的某個(gè)方法后,當(dāng)對(duì)象的上轉(zhuǎn)型對(duì)象調(diào)用這個(gè)方法時(shí)一定是調(diào)用了子類重寫的方法。5.1.6對(duì)象的上轉(zhuǎn)型對(duì)象abstract類中可以有abstract方法。和普通的類相比,abstract類可以有abstract方法(抽象方法),也可以有非abstract方法。5.2抽象類1.接口的聲明前面曾使用class關(guān)鍵字來(lái)聲明類,接口通過(guò)使用關(guān)鍵字interface來(lái)聲明。格式為:interface接口的名字2.接口體接口體中包含常量定義和方法定義兩部分。接口體中只進(jìn)行方法的聲明,不許提供方法的實(shí)現(xiàn),所以,方法的定義沒(méi)有方法體,且用分號(hào)“;”結(jié)尾。5.3接口接口和抽象類的比較如下:(1) 抽象類和接口都可以有abstract方法(2) 接口中只可以有常量,不能有變量;而抽象類中即可以有常量也可以有變量。(3) 抽象類中也可以有非abstract方法,接口不可以。抽象類與接口的比較在日常生活中商家為了促銷往往會(huì)為消費(fèi)者辦理各種充值卡,不同的充值卡其打折的力度也不盡相同。模擬充值卡消費(fèi),POS機(jī)能夠按照相應(yīng)的充值卡進(jìn)行消費(fèi)扣款,并且商家可以自定義多種不同類型的充值卡。5.4應(yīng)用實(shí)例:POS刷卡機(jī)多態(tài)性就是指父類的某個(gè)方法被其子類重寫時(shí),可以各自產(chǎn)生自己的功能行為?!厩榫耙搿吭谌粘I钪猩碳覟榱舜黉N往往會(huì)為消費(fèi)者辦理各種充值卡,不同的充值卡其打折的力度也不盡相同。各個(gè)景點(diǎn)的景區(qū)門票往往也會(huì)針對(duì)不同的群體進(jìn)行不同的定價(jià)。1.多態(tài)性(Polymorphism)的概念當(dāng)我們把子類創(chuàng)建的對(duì)象的引用放到一個(gè)父類的對(duì)象中時(shí),就得到了該對(duì)象的一個(gè)上轉(zhuǎn)型對(duì)象,那

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論