Java語(yǔ)言08(接口與多態(tài)).ppt_第1頁(yè)
Java語(yǔ)言08(接口與多態(tài)).ppt_第2頁(yè)
Java語(yǔ)言08(接口與多態(tài)).ppt_第3頁(yè)
Java語(yǔ)言08(接口與多態(tài)).ppt_第4頁(yè)
Java語(yǔ)言08(接口與多態(tài)).ppt_第5頁(yè)
已閱讀5頁(yè),還剩20頁(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)介

第6章 接口與多態(tài),6.1 接口,Java中的接口就是定義了若干個(gè)抽象方法和常量,形成一個(gè)屬性集合,該屬性集合通常對(duì)應(yīng)某一組功能,可以實(shí)現(xiàn)類似于類的多重繼承功能。其格式為:,6.11接口的聲明與使用,1.接口聲明,public interface 接口名extends 父接口名列表 /接口體 /常量聲明 /抽象方法聲明 ,2.接口體,接口體中包含常量的聲明和方法定義兩部分。,接口聲明時(shí)的注意事項(xiàng),在Java中接口是一種專門的類型,用interface關(guān)鍵字定義接口。 接口中只能定義抽象方法,而且訪問(wèn)權(quán)限一定是公有的,在定義時(shí)可省略public和abstract修飾符。 接口中可以定義變量,但實(shí)際上是public final修飾的常量。 接口中不能定義靜態(tài)方法。,3.接口的使用,在Java語(yǔ)言中,接口由類去實(shí)現(xiàn)以便使用接口中的方法,一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,類通過(guò)使用關(guān)鍵字implements聲明自己實(shí)現(xiàn)一個(gè)或多個(gè)接口。如果實(shí)現(xiàn)多個(gè)接口,則用逗號(hào)隔開(kāi)接口名。 如果一個(gè)類實(shí)現(xiàn)了某個(gè)接口,那么這個(gè)類必須重寫該接口的所有方法。需要注意的是,重寫接口的方法時(shí),接口中的方法一定是public abstract方法,所以類在重寫接口方法 時(shí)不僅要去掉abstract修飾、給出方法體,而且方法訪問(wèn)權(quán)限一定要顯式地用public來(lái)修飾。,類重寫的接口方法以及接口中的常量可以被類的對(duì)象調(diào)用,而且常量也可以用類名或接口名直接調(diào)用。 接口聲明時(shí),如果關(guān)鍵字interface前加下public,就稱這樣的接口是一個(gè)public接口。public接口可以被任何一個(gè)類實(shí)現(xiàn)。如果一個(gè)接口不加public修飾,就是友好接口,只能被同一包中的類實(shí)現(xiàn)。,如果實(shí)現(xiàn)了某個(gè)接口,那么子類也就自然實(shí)現(xiàn)了該接口,子類不必于地使用關(guān)鍵字implements聲明實(shí)現(xiàn)這個(gè)接口。 如果一個(gè)類聲明實(shí)現(xiàn)一個(gè)接口,但沒(méi)有重寫串的所有方法,那么這個(gè)類必須是abstract類。,例:接口的使用,interface computable int MAX=100; int f(int x); ,class china implements computable int number; public int f(int x) return x+43; ,public class example6 public static void main(String args) china c=new china(); c.number=48+computable.MAX; System.out.println(“Chinese student:“+c.f(4); ,接口的繼承性,與類相仿,接口也具有繼承性。定義一個(gè)接口時(shí)可以通過(guò)extends關(guān)鍵字聲明該新接口是某個(gè)已經(jīng)存在的父接口的派生接口,它將繼承父接口的所有屬性和方法。 與類的繼承不同的是一個(gè)接口可以有一個(gè)以上父接口,它們之間用逗號(hào)分隔,形成父接口列表。新接口將繼承所有父接口中屬性和方法。,類實(shí)現(xiàn)接口的注意事項(xiàng),在類的聲明部分,用implements關(guān)鍵字聲明該類將要實(shí)現(xiàn)哪些接口。 如果實(shí)現(xiàn)某接口的類不是abstract抽象類,則在類的定義部分必須實(shí)現(xiàn)指定接口所有抽象方法。 如果實(shí)現(xiàn)某接口的類是abstract的抽象類,則它可以不實(shí)現(xiàn)該接口所有的方法。 一個(gè)類在實(shí)現(xiàn)某接口的抽象方法時(shí),必須使用完全相同的方法名。 接口抽象訪問(wèn)限制符都已制定為public,所以類在實(shí)現(xiàn)方法時(shí),必須顯式地使用public修飾符。,interface A int a=1; interface B int b=2; void pp(); ,interface MyInterface extends A,B abstract class AbstractInterfaceExam implements A,B public class InterfaceExam extends AbstractInterfaceExam/implements MyInterface /A,B,public class InterfaceExam extends AbstractInterfaceExam implements MyInterface A,B public static void main(String args) InterfaceExam obj =new InterfaceExam(); System.out.println(“繼承接口A中的a=“+obj.a); obj.pp(); public void pp() System.out.println(“繼承接口B中的b=“+.b); ,幾點(diǎn)說(shuō)明,制定模塊與模塊之間的通信協(xié)議,一個(gè)定義多人實(shí)現(xiàn)。 接口做方法的參數(shù)時(shí),其實(shí)參要用它的實(shí)現(xiàn)類。 接口的數(shù)據(jù)成員都靜態(tài)常量,通過(guò)接口名,實(shí)現(xiàn)類和對(duì)象都可以進(jìn)行訪問(wèn)。訪問(wèn)時(shí)點(diǎn)運(yùn)算符。,. 接口的回調(diào),接口回調(diào)是指:可以把實(shí)現(xiàn)某一接口的類創(chuàng)建的對(duì)象的引用賦給該接口聲明的接口變量中,那么該接口變量就可以調(diào)用被類實(shí)現(xiàn)的接口方法。,interface ShowMessage void ShowTrademark(String s); ,class TV implements ShowMessage public void ShowTrademark(String s) System.out.println(s); ,public class example63 public static void main(String args) ShowMessage sm; sm=new TV(); sm.ShowTrademark(“長(zhǎng)虹牌電視機(jī)“); ,6.2.2 接口的多態(tài)性,接口的多態(tài)性是不同的類在實(shí)現(xiàn)同一個(gè)接口時(shí)可能具有不同的實(shí)現(xiàn)方式,那么接口變量在架設(shè)接口依法時(shí)就可能具有多種形態(tài)。,6.2.3 接口與抽象類的比較,接口不能包含任何可以執(zhí)行的方法,而抽象類可以。 接口中只可以有常量,不能有變量

溫馨提示

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