(1.43)-07-03抽象類 VS 接口編程基礎(chǔ)_第1頁
(1.43)-07-03抽象類 VS 接口編程基礎(chǔ)_第2頁
(1.43)-07-03抽象類 VS 接口編程基礎(chǔ)_第3頁
(1.43)-07-03抽象類 VS 接口編程基礎(chǔ)_第4頁
(1.43)-07-03抽象類 VS 接口編程基礎(chǔ)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

接口vs.抽象類主要內(nèi)容接口vs.抽象類接口和抽象類的設(shè)計指南案例——可食用接口的實現(xiàn)接口的使用和抽象類的使用基本類似,但是定義一個接口與定義一個抽象類有所不同。一個類可以實現(xiàn)多個接口,但是只能繼承一個父類。例如publicclassNewClassextendsBaseClass implementsInterface1,…,InterfaceN{ …}所有的類共享同一個根類,但是接口沒有共同的根。子接口利用關(guān)鍵字extends,接口可以繼承其他接口。這樣的接口稱為子接口。例如publicinterfaceNewInterfaceextendsInterface1,…,InterfaceN{ …}一個實現(xiàn)NewInterface的類必須實現(xiàn)在NewInterface,Interface1,…,InterfaceN中定義的抽象方法子接口利用關(guān)鍵字extends,接口可以繼承其他接口。這樣的接口稱為子接口。例如publicinterfaceNewInterfaceextendsInterface1,…,InterfaceN{ …}一個實現(xiàn)NewInterface的類必須實現(xiàn)在NewInterface,Interface1,…,InterfaceN中定義的抽象方法子接口

所有的類共享同一個根類Object,但是接口沒有共同的根。與類相似,接口也可以定義一種類型。一個接口類型的變量可以引用任何實現(xiàn)該接口的類的實例。如果一個類實現(xiàn)了一個接口,那么這個接口就類似于該類的一個父類??梢詫⒔涌诋斪饕环N數(shù)據(jù)類型使用,將接口類型的變量轉(zhuǎn)換為它的子類,反過來也可以。示例設(shè)計指南抽象類和接口都是用來明確多個對象的共同特征的。那么該如何確定在什么情況下應(yīng)該使用接口,什么情況下應(yīng)該使用類呢?設(shè)計指南若清晰描述父子繼承關(guān)系的,應(yīng)該使用類建模。例如,公歷是也一種日歷,java.util.GregorianCalendar和java.util.Calendar是用類繼承建模的。設(shè)計指南若表明一個對象擁有某種屬性,可以用接口建模。例如,所有的字符串都是可比較的,因此String類實現(xiàn)了Comparable接口。設(shè)計指南如果需要多繼承,可以用接口來避免單繼承。

在多重繼承情況下,必須設(shè)計一個超類,其他的作為接口。通常,推薦使用接口而非抽象類,因為接口可以定義非相關(guān)類共有的父類型。案例——

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論