2.5.6繼承和接口

2.5.6繼承和接口

ID:38244359

大小:31.50 KB

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

時(shí)間:2019-06-07

2.5.6繼承和接口_第1頁(yè)
2.5.6繼承和接口_第2頁(yè)
2.5.6繼承和接口_第3頁(yè)
資源描述:

《2.5.6繼承和接口》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。

1、2.4實(shí)例和類(lèi)成員2.4.5對(duì)象和類(lèi)  你可能會(huì)注意到對(duì)象和類(lèi)看起來(lái)很相似。在現(xiàn)實(shí)世界中,類(lèi)和對(duì)象之間的區(qū)別經(jīng)常是讓程序員困惑的源泉。在現(xiàn)實(shí)世界中,很明顯,類(lèi)不能是它們描述的對(duì)象本身。然而,在軟件中很困難來(lái)區(qū)分類(lèi)和對(duì)象。有部分原因是軟件對(duì)象只是現(xiàn)實(shí)世界中的電子模型或者是抽象概念。但是也因?yàn)閷?duì)象通常有時(shí)是指類(lèi)和實(shí)例。2.5什么是繼承  一個(gè)類(lèi)可以從它的父類(lèi)繼承狀態(tài)和行為。繼承為組織和構(gòu)造軟件程序提供了一個(gè)強(qiáng)大的和自然的機(jī)理。  總得說(shuō)來(lái),對(duì)象是以類(lèi)得形式來(lái)定義得。你可能現(xiàn)在已經(jīng)可以從它類(lèi)知道許多對(duì)象了。即使你如知道,如果我告訴你它是一輛自行車(chē)

2、,你就會(huì)知道它有兩個(gè)輪子和腳踏板等等。面向?qū)ο笙到y(tǒng)就更深入一些了,它允許類(lèi)在其它類(lèi)中定義。比如,山地自行車(chē)、賽車(chē)以及串座雙人自行車(chē)都是各種各樣的自行車(chē)。在面向?qū)ο蠹夹g(shù)中,山地自行車(chē)、賽車(chē)以及串座雙人自行車(chē)都是自行車(chē)類(lèi)的子類(lèi)。同樣地,自行車(chē)類(lèi)是山地自行車(chē)、賽車(chē)以及串座雙人自行車(chē)的父類(lèi)。這個(gè)父子關(guān)系可以如圖9所示:(圖9)  每一個(gè)子例從父類(lèi)中繼承了狀態(tài)。山地自行車(chē)、賽車(chē)以及串座雙人自行車(chē)共享了這些狀態(tài):速度等。同樣,每一個(gè)子類(lèi)繼承類(lèi)從父類(lèi)的方法,山地自行車(chē)、賽車(chē)以及串座雙人自行車(chē)共享了這些行為:剎車(chē)、改變腳踏速度等等。2.5什么是繼承  然而

3、,子類(lèi)不能受到父類(lèi)提供的狀態(tài)和行為的限制。子類(lèi)可以增加變量和方法到從父類(lèi)繼承而來(lái)的變量和方法。比如,串座雙人自行車(chē)有兩個(gè)座位,這是它的父類(lèi)沒(méi)有的?! ∽宇?lèi)同樣可以重載繼承的方法并且為這些方法提供特殊執(zhí)行方法。比如,如果你有一個(gè)山地自行車(chē)有額外的齒輪設(shè)置,你就可以重載改變齒輪方法來(lái)使騎車(chē)者可以使用這些新的齒輪?! ∧阋膊荒苁芟抻诶^承的一個(gè)層次。繼承樹(shù)或者類(lèi)的分級(jí)結(jié)構(gòu)可以是很深。方法和變量是逐級(jí)繼承的??偟膩?lái)說(shuō),在分級(jí)結(jié)構(gòu)的越下方,就有越多的行為?! ∪绻麑?duì)象類(lèi)處于分級(jí)結(jié)構(gòu)的頂端,那么每個(gè)類(lèi)都是它的后代(直接地或者是間接地)。一種類(lèi)型的對(duì)象保留

4、任何對(duì)象的一個(gè)引用,比如類(lèi)或者數(shù)組的一個(gè)實(shí)例。對(duì)象提供了行為,這些行為是運(yùn)行在JAVA虛擬機(jī)所需要的。比如,所有類(lèi)繼承了對(duì)象的toString方法,它返回了代表對(duì)象的字符串。下面說(shuō)說(shuō)我們?yōu)槭裁匆褂美^承,它到底有哪些好處呢?好處是有的:1.子類(lèi)提供了特殊的行為,這是在父類(lèi)中所沒(méi)有的。通過(guò)使用繼承,程序員可以多次重新使用在父類(lèi)中的代碼。2.程序員可以執(zhí)行父類(lèi)(稱(chēng)為抽象類(lèi))來(lái)定義總的行為。這個(gè)抽象的父類(lèi)可以定義并且部分執(zhí)行行為,但是絕大多數(shù)的父類(lèi)是未定義和未執(zhí)行的。其它的部分由程序員來(lái)實(shí)現(xiàn)特殊的子類(lèi)。2.6什么是接口  接口是一個(gè)收集方法和常數(shù)

5、表單的契約。當(dāng)類(lèi)執(zhí)行一個(gè)接口,它就許諾聲明在那個(gè)接口中執(zhí)行所有的方法?! 〗涌谑且粋€(gè)設(shè)備或者一個(gè)系統(tǒng),它是用于交互的無(wú)關(guān)的實(shí)體。根據(jù)這個(gè)定義,遠(yuǎn)程控制是一個(gè)在你和電視的接口;而英語(yǔ)是兩個(gè)人之間的接口;強(qiáng)制在軍事中的行為協(xié)議是不同等價(jià)人之間的接口。在JAVA語(yǔ)言中,接口是一個(gè)設(shè)備,它是用來(lái)與其它對(duì)象交互的設(shè)備。一個(gè)接口可能對(duì)一個(gè)協(xié)議是類(lèi)似的。實(shí)際上,其它面向?qū)ο笳Z(yǔ)言有接口的功能,但它們調(diào)用它們的接口協(xié)議?! ∽孕熊?chē)類(lèi)和它的類(lèi)分級(jí)結(jié)構(gòu)定義了什么是自行車(chē)。但是自行車(chē)在其它方面與現(xiàn)實(shí)世界交互作用,例如,倉(cāng)庫(kù)中的自行車(chē)可以由一個(gè)存貨程序來(lái)管理。一個(gè)存

6、貨程序不關(guān)心管理項(xiàng)目的哪一類(lèi)只要項(xiàng)目提供某一信息,比如價(jià)格和跟蹤數(shù)字。取代強(qiáng)迫類(lèi)與其它無(wú)關(guān)項(xiàng)的關(guān)系,存貨程序建立了通訊的協(xié)議。這個(gè)協(xié)議是由包含在接口中的常數(shù)和方法定義組成的。這個(gè)存貨清單接口將要定義(但不執(zhí)行)方法來(lái)設(shè)置和得到零售價(jià)格,指定跟蹤數(shù)字等等。  為了在存貨清單程序中操作,自行車(chē)類(lèi)必須在執(zhí)行接口的時(shí)候遵守這個(gè)協(xié)議。當(dāng)一個(gè)了執(zhí)行一個(gè)接口的時(shí)候,類(lèi)遵守定義在接口中的所有方法。因此,自行車(chē)將為這些設(shè)置和獲得零售價(jià)格并指定跟蹤數(shù)值等等的方法提供執(zhí)行。你可以使用接口來(lái)定義一個(gè)行為的協(xié)議,這個(gè)行為可以有在類(lèi)分級(jí)結(jié)構(gòu)中任何類(lèi)來(lái)執(zhí)行。接口的主要好

7、處有一下幾點(diǎn):1.不用人工強(qiáng)迫類(lèi)關(guān)系在無(wú)關(guān)類(lèi)中截獲相似處。2.聲明想執(zhí)行的一個(gè)或者更多類(lèi)的方法。3.在不暴露對(duì)象的類(lèi)的前提下,暴露對(duì)象的編程接口。

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

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

當(dāng)前文檔最多預(yù)覽五頁(yè),下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫(huà)的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無(wú)此問(wèn)題,請(qǐng)放心下載。
2. 本文檔由用戶(hù)上傳,版權(quán)歸屬用戶(hù),天天文庫(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)等原因無(wú)法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶(hù)請(qǐng)聯(lián)系客服處理。