Java語(yǔ)言PPT1第8章 抽象類與接口_第1頁(yè)
Java語(yǔ)言PPT1第8章 抽象類與接口_第2頁(yè)
Java語(yǔ)言PPT1第8章 抽象類與接口_第3頁(yè)
Java語(yǔ)言PPT1第8章 抽象類與接口_第4頁(yè)
Java語(yǔ)言PPT1第8章 抽象類與接口_第5頁(yè)
已閱讀5頁(yè),還剩10頁(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)介

本章內(nèi)容8.1抽象類和抽象方法8.2接口概述8.3接口的高級(jí)應(yīng)用

8.1抽象類和抽象方法8.1.1認(rèn)識(shí)抽象類8.1.2定義抽象類8.1.3抽象方法

8.1.1認(rèn)識(shí)抽象類定義抽象類和抽象方法的語(yǔ)法格式如下://抽象類定義權(quán)限修飾符abstractclass抽象類名{ //抽象方法定義 權(quán)限修飾符abstract返回值類型抽象方法名(參數(shù)列表);}8.1.2定義抽象類例如,下面的代碼,用于定義一個(gè)抽象類。publicabstractclassAnimal{//定義一個(gè)抽象類

//抽象方法,沒(méi)有方法體,有abstract關(guān)鍵字做修飾

publicabstractvoidshout();}8.1.3抽象方法1.聲明抽象方法如果一個(gè)類包含抽象方法,那么該類必須是抽象類。任何子類必須重寫父類的抽象方法,否則聲明自身必須聲明為抽象類。聲明一個(gè)抽象類的語(yǔ)法格式如下:abstract返回類型方法名([參數(shù)表]);注意:抽象方法沒(méi)有定義方法體,方法名后面直接跟一個(gè)分號(hào),而不是花括號(hào)。2.抽象方法實(shí)現(xiàn)繼承抽象類的子類必須重寫父類的抽象方法,否則,該子類也必須聲明為抽象類。最終,必須有子類實(shí)現(xiàn)父類的抽象方法,否則,從最初的父類到最終的子類都不能用來(lái)實(shí)例化對(duì)象。下面通過(guò)一個(gè)例子介紹,子類重寫父類的抽象方法。8.2接口概述8.2.1接口聲明8.2.2實(shí)現(xiàn)接口8.2.3接口默認(rèn)方法8.2.4接口與抽象類8.2.1接口聲明接口是比抽象類更高的抽象,它是一個(gè)完全抽象的類,即抽象方法的集合。接口使用關(guān)鍵字interface來(lái)聲明,接口的聲明語(yǔ)法格式如下:[public]interface接口名稱[extends其他的類名]{ [public][static][final]數(shù)據(jù)類型成員名稱=常量值; [public][static][abstract]返回值抽象方法名(參數(shù)列表);}8.2.2實(shí)現(xiàn)接口接口如果沒(méi)有被類實(shí)現(xiàn),那么沒(méi)有任何作用,接口就是一個(gè)框架而已。當(dāng)類實(shí)現(xiàn)接口的時(shí)候,類要實(shí)現(xiàn)接口中所有的方法。否則,類必須聲明為抽象的類。類使用implements關(guān)鍵字實(shí)現(xiàn)接口。在類聲明中,Implements關(guān)鍵字放在class聲明后面。實(shí)現(xiàn)一個(gè)接口的語(yǔ)法:class類名稱implements接口名稱[,其他接口]{…}8.2.3接口默認(rèn)方法Java提供了接口默認(rèn)方法。即允許接口中可以有實(shí)現(xiàn)方法,使用default關(guān)鍵字在接口修飾一個(gè)非抽象的方法,這個(gè)特征又叫擴(kuò)展方法。例如:publicinterfaceInterfaceNew{ publicdoublemethod(inta); publicdefaultvoidtest(){ System.out.println("java8接口新特性"); }}8.2.4接口與抽象類接口的結(jié)構(gòu)和抽象類非常相似,也具有數(shù)據(jù)成員與抽象方法,但它又與抽象類不同。下面詳細(xì)介紹接口與抽象類的異同。1.接口與抽象類相同點(diǎn)2.接口與抽象類的不同點(diǎn)8.3接口的高級(jí)應(yīng)用8.3.1接口的多態(tài)8.3.2適配接口8.3.3嵌套接口8.3.4接口回調(diào)8.3.1接口的多態(tài)Java里沒(méi)有多繼承,一個(gè)類只能有一個(gè)父類。而繼承的表現(xiàn)就是多態(tài),一個(gè)父類可以有多個(gè)子類,而在子類里可以重寫父類的方法,這樣每個(gè)子類里重寫的代碼不一樣,自然表現(xiàn)形式就不一樣。用父類的變量去引用不同的子類,在調(diào)用這個(gè)相同的方法的時(shí)候得到的結(jié)果和表現(xiàn)形式就不一樣了,這就是多態(tài),調(diào)用相同的方法會(huì)有不同的結(jié)果。下面給出一個(gè)示例。8.3.2適配接口當(dāng)我們實(shí)現(xiàn)一個(gè)接口時(shí),必須實(shí)現(xiàn)該接口的所有方法,這樣有時(shí)比較浪費(fèi),因?yàn)椴⒉皇撬械姆椒ǘ际俏覀冃枰?,有時(shí)只需要使用其中的一些方法。為了解決這個(gè)問(wèn)題,我們引入了接口的適配器模式,借助于一個(gè)抽象類,該抽象類實(shí)現(xiàn)了該接口,實(shí)現(xiàn)了所有的方法,而我們不和原始的接口打交道,只和該抽象類取得聯(lián)系。我們寫一個(gè)類,繼承該抽象類,重寫我們需要的方法就行。8.3.3嵌套接口1class內(nèi)嵌套interface這時(shí)接口可以是public,private和package。重點(diǎn)在private上,被定義為私有的接口只能在接口所在的類被實(shí)現(xiàn)??梢员粚?shí)現(xiàn)為public的類也可以被實(shí)現(xiàn)為private的類。當(dāng)被實(shí)現(xiàn)為public時(shí),只能在被自身所在的類內(nèi)部使用。只能夠?qū)崿F(xiàn)接口中的方法,在外部不能像正常類那樣上傳為接口類型。2interface內(nèi)嵌套interface由于接口的元素必須是public的,所以被嵌套的接口自動(dòng)就是public的,而不能定義成private的。在實(shí)現(xiàn)這種嵌套時(shí),不必實(shí)現(xiàn)被嵌套的接口。8.3.4接口回調(diào)接口回調(diào)

溫馨提示

  • 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)論