亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

Java中接口的使用

時(shí)間:2020-09-30 20:45:17 SUN認(rèn)證 我要投稿

Java中接口的使用

  接口申明必須有interface關(guān)鍵字和接口的名字,public指明任意類(lèi)均可以使用這個(gè)接口,默認(rèn)情況下,只有與該接口定義在同一個(gè)包中的類(lèi)才可以訪問(wèn)這個(gè)接口。extends 與類(lèi)申明中的extends 基本相同,不同的是一個(gè)接口可以有多個(gè)父接口,用逗號(hào)隔開(kāi)。而一個(gè)類(lèi)只能有一個(gè)父類(lèi)。子接口繼承接口中所有的常量和方法。在類(lèi)的申明中用implements來(lái)表示一個(gè)類(lèi)實(shí)現(xiàn)某個(gè)接口,在類(lèi)體中可以使用接口中定義的常量,而且必須實(shí)現(xiàn)接口中定義的所有方法(可以是空的實(shí)現(xiàn)但一定要實(shí)現(xiàn)),否則該類(lèi)就是一個(gè)抽象類(lèi)。一個(gè)類(lèi)可以實(shí)現(xiàn)多個(gè)接口。接口的作用,一言以蔽之,就是標(biāo)志類(lèi)的類(lèi)別(type of class)。把不同類(lèi)型的類(lèi)歸于不同的接口,可以更好的'管理他們。OO的精髓,是對(duì)對(duì)象的抽象,最能體現(xiàn)這一點(diǎn)的就是接口。

  接口不是類(lèi),尤其是絕對(duì)不能使用new 操作符實(shí)例化接口;

  Module md=new Module()//錯(cuò)誤

  不過(guò),雖然不能構(gòu)造接口對(duì)象,但還是可以聲明接口變量。

  Module md;

  接口變量必須指向一個(gè)實(shí)現(xiàn)了該接口的類(lèi)的對(duì)象;

  x=new MotorModule();//只要實(shí)現(xiàn)了Module就對(duì)了

  可以用instanceof來(lái)檢驗(yàn)對(duì)象是否實(shí)現(xiàn)了某個(gè)接口(只要它屬于的類(lèi)或者父類(lèi)實(shí)現(xiàn)了某個(gè)接口都可以);

  if(anObject instanceof Module){...}

  接口在軟件發(fā)布的時(shí)候是向用戶(hù)公開(kāi)的,用戶(hù)可以通過(guò)調(diào)用實(shí)現(xiàn)接口的類(lèi)的接口方法,而如果不實(shí)現(xiàn)接口用戶(hù)是不能調(diào)用的。

  也就是我們常可以聽(tīng)到的服務(wù)提供商這樣說(shuō):"如果你們的類(lèi)遵循一個(gè)特定的接口,那么我們將執(zhí)行這些服務(wù)

  java 接口的使用舉例

  //以下程序說(shuō)明 并不嚴(yán)謹(jǐn),只是為了方便初學(xué)者初步的理解接口的應(yīng)用

  interface Interface //接口 {

  String ShowMessage(String MSG); //接口方法,因?yàn)榻涌诜椒J(rèn)是public abstract 所以這里可以不用顯示書(shū)寫(xiě)

  }

  class ClassItf implements Interface //全部實(shí)現(xiàn)了接口interface類(lèi)的方法;

  {

  public ClassItf()

  {

  //構(gòu)造函數(shù)

  }

  public String ShowMessage(String MSG) //實(shí)現(xiàn)接口方法ShowMessage()

  {

  System.out.print(MSG);

  return MSG;

  }

  }

  /* usingItf 類(lèi)調(diào)用了接口方法,來(lái)實(shí)施某一些功能,但是具體的操作有接口實(shí)現(xiàn)類(lèi)來(lái)操作,

  將必要的數(shù)據(jù)通信給接口,實(shí)現(xiàn)了數(shù)據(jù)的通信; 這里如此說(shuō)明并不嚴(yán)謹(jǐn),只是便于初學(xué)者理解

  */

  class usingItf //"驅(qū)動(dòng)類(lèi)"

  {

  public String getstring;

  public void usingItf(Interface inf,String MSG) //使用了接口定義的方法 注意:使用了Interface 的引用 inf

  {

  getstring=inf.ShowMessage(MSG);

  }

  }

  public class Test //Test函數(shù)

  {

  public static void main(String args[])

  {

  ClassItf newClassItf=new ClassItf();

  usingItf aa =new usingItf();

  aa.usingItf(newClassItf,"This is the firstpage!!!!"); // 注意這里傳遞的接口實(shí)現(xiàn)類(lèi)的實(shí)例,還有參數(shù) class usingItf

  }

  }

【Java中接口的使用】相關(guān)文章:

Java中import的使用10-16

區(qū)分Java中抽象類(lèi)和接口的方法10-12

如何區(qū)分Java中抽象類(lèi)和接口10-16

Java接口如何定義方法05-18

java中File類(lèi)的使用方法11-13

Java的接口和抽象類(lèi)11-11

音源接口使用方法技巧10-27

java中continue跳轉(zhuǎn)語(yǔ)句使用方法11-11

使用JavaScript實(shí)現(xiàn)Java的List功能11-13