java接口

java接口

計算機術語
Java接口是一系列方法的聲明,是一些方法特征的集合,一個接口隻有方法的特征沒有方法的實現,因此這些方法可以在不同的地方被不同的類實現,而這些實現可以具有不同的行為(功能)。兩種含義:一,Java接口,Java語言中存在的結構,有特定的語法和結構;二,一個類所具有的方法的特征集合,是一種邏輯上的抽象。前者叫做“Java接口”,後者叫做“接口”。
    中文名:Java接口 外文名: 别名: 涵義:特定結構,特征集合 适用:JAVA 屬于:計算機

分類

單方法接口

以下是引用片段:

publicinterfaceActionlistener{publicabstractvoidactionPerformed(ActionEventevent);}

僅且隻有一個方法,隻有實現了這個接口(重寫這個接口中的唯一一個方法),你才有資格去事件監聽器列表裡注冊(參數為Actionlistener類型),當事件源變動時,自動調用這個唯一的actionPerformed方法。

标識接口

是沒有任何方法和屬性的接口。标識接口不對實現它的類有任何語意上的要求,它僅僅表明了實現它的類屬于一個特定的類型(傳遞)。

不推薦過多的使用标識接口。

常量接口

用Java接口來聲明一些常量,然後由實現這個接口的類使用這些常量(以前在做畫闆的時候這麼幹過)。建議不要模仿這種常量接口的做法。

【範例】

定義接口格式:

[public]interface接口名稱[extends父接口名列表]

{//靜态常量[public][static][final]數據類型變量名=常量值;//抽象方法[public][abstract][native]返回值類型方法名(參數列表);}

實現接口格式:

[修飾符]class類名[extends父類名][implements接口A,接口B,···]

{類成員變量和成員方法;為接口A中的所有方法編寫方法體,實現接口A;為接口B中的所有方法編寫方法體,實現接口B;}

實例:

本例定義接口AreaInterface,其中有靜态常量pai和求面積的抽象方法area()。類Circle和類Rectangle實現了AreaInterface接口,即為接口中的抽象方法area()編寫了滿足各自要求的方法體,分别求圓形和長方形的面積。

Java接口和Java抽象類最大的一個區别,就在于Java抽象類可以提供某些方法的部分實現,而Java接口不可以,這大概就是Java抽象類唯一的優點吧,但這個優點非常有用。如果向一個抽象類裡加入一個新的具體方法時,那麼它所有的子類都一下子都得到了這個新方法,而Java接口做不到這一點,如果向一個Java接口裡加入一個新方法,所有實現這個接口的類就無法成功通過編譯了,因為你必須讓每一個類都再實現這個方法才行,這顯然是Java接口的缺點。

一個抽象類的實現隻能由這個抽象類的子類給出,也就是說,這個實現處在抽象類所定義出的繼承的等級結構中,而由于Java語言的單繼承性,所以抽象類作為類型定義工具的效能大打折扣。在這一點上,Java接口的優勢就出來了,任何一個實現了一個Java接口所規定的方法的類都可以具有這個接口的類型,而一個類可以實現任意多個Java接口,從而這個類就有了多種類型。

不難看出,Java接口是定義混合類型的理想工具,混合類表明一個類不僅僅具有某個主類型的行為,而且具有其他的次要行為。

語法上,抽象類和接口有着以下不同:

1.abstractclass在Java語言中表示的是一種繼承關系,一個類隻能使用一次繼承關系。但是,一個類卻可以實現多個interface。繼承抽象類使用的是extends關鍵字,實現接口使用的是implements關鍵字,繼承寫在前面,實現接口寫在後面。如果實現多個接口,中間用逗号分隔。例:

publicclassMainextendsJApplet

publicclassMainimplementsRunnable

publicclassMainextendsJAppletimplementsActionListener

publicclassMainextendsJAppletimplementsActionListener,Runnable

2.在abstractclass中可以有自己的數據成員,也可以有非abstract的成員方法,而在interface中,隻能夠有靜态的不能被修改的數據成員(也就是必須是staticfinal的,不過在interface中一般不定義數據成員),所有的成員方法都是abstract的。

3.abstractclass和interface所反映出的設計理念不同。其實abstractclass表示的是"is-a"關系,interface表示的是"like-a"關系。

4.實現接口的類必須實現其中的所有方法,繼承自抽象類的子類實現所有的抽象方法。抽象類中可以有非抽象方法。接口中則不能有實現方法。

5.接口中定義的變量默認是publicstaticfinal型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。

6.抽象類中的變量默認具有friendly權限,其值可以在子類中重新定義,也可以重新賦值。

7.接口中的方法默認都是publicabstract類型的。

詳情

研究Web服務器端的工作原理,熟悉套接字(Socket)在網絡編程中的應用方法,并讨論如何使用标準的面向對象的分析和設計方法來開發健壯的基于JAVA的Web服務器端應用程序。

相關詞條

相關搜索

其它詞條