Java語言08(接口與多態(tài)).ppt_第1頁
Java語言08(接口與多態(tài)).ppt_第2頁
Java語言08(接口與多態(tài)).ppt_第3頁
Java語言08(接口與多態(tài)).ppt_第4頁
Java語言08(接口與多態(tài)).ppt_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論