Java接口是什么
Java接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現(xiàn),因此這些方法可以在不同的地方被不同的類實現(xiàn),而這些實現(xiàn)可以具有不同的行為(功能)。
接口(英語:Interface),在JAVA編程語言中是一個抽象類型(AbstractType),它被用來要求類(Class)必須實現(xiàn)指定的方法,使不同類的對象可以利用相同的界面進(jìn)行溝通。接口通常以interface來宣告,它僅能包含方法簽名(MethodSignature)以及常數(shù)宣告(變量宣告包含了static及final),一個接口不會包含方法的實現(xiàn)(僅有定義)。
接口無法被實例化,但是可以被實現(xiàn)。一個實現(xiàn)接口的類,必須實現(xiàn)接口內(nèi)所描述的所有方法,否則就必須宣告為抽象類(AbstractClass)。另外,在Java中,接口類型可用來宣告一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實現(xiàn)的對象。
其中一個使用接口的優(yōu)勢是,可以利用他們模擬多重繼承,類在JAVA中不允許多重繼承,所有在JAVA中的類必須而且僅能有一個父類,而java.lang.Object(JAVA類型系統(tǒng)中最頂層的類型)是唯一一個例外。
JAVA的類可以被實現(xiàn)許多個接口,然而一個接口則無法實現(xiàn)其他的接口。
接口的定義方式如下
接口的主體包含著抽象方法,但所有方法在接口內(nèi)(定義上)都是抽象(Abstract)方法,所以abstract的關(guān)鍵字在接口內(nèi)則不被需要。由于接口代表著一個對外行為的集合,所以任何方法在接口內(nèi)都是public(公開的)。
publicinterfacePredator{booleanchasePrey(Preyp);voideatPrey(Preyp);}1234
接口內(nèi)的成員皆為靜態(tài)(static)、final及公開(public),反之,他們可以成為任何類或接口的類型
接口的使用解決類只能單繼承的問題,因為一個類可以實現(xiàn)多個接口。
那么Java中要如何去實現(xiàn)一個接口并且在實現(xiàn)他的子類中調(diào)用接口中的方法呢?
接口的實現(xiàn)方式
publicclassLionimplementsPredator{publicbooleanchasePrey(Preyp){//programmingtochasepreyp(specificallyforalion)}publicvoideatPrey(Preyp){//programmingtoeatpreyp(specificallyforalion)}}12345678910
如果一個類實現(xiàn)了一個接口,而沒有實現(xiàn)接口的所有方法,則它必須被標(biāo)注為abstract(抽象類)。一個抽象類的子類必須實現(xiàn)它未完成的方法,假如該項子類仍不會實現(xiàn)接口的所有方法,那么該項子類依然需要被標(biāo)注為abstract。
接口通常被使用在Java編程語言,用來做回調(diào)函數(shù)使用[2]。Java并不允許方法作為參數(shù)傳遞使用,因此,其中一個解決辦法則是可以定義一個接口,把這個接口當(dāng)成方法的參數(shù),以此來使用該項對象的方法簽名。
子接口[編輯]
接口可以被延伸為數(shù)個不同的接口,可以使用上述所描述的方法,舉例來說:
publicinterfaceVenomousPredatorextendsPredator,Venomous{//介面主體}123
以上的程序片段是合法定義的子接口,與類不同的是,接口允許多重繼承,而Predator及Venomous可能定義或是繼承相同的方法,比如說kill(Preyprey),當(dāng)一個類實現(xiàn)VenomousPredator的時候,它將同時實現(xiàn)這兩種方法。
有些泛用的Java接口可供參考:
Comparable
擁有一個方法compareTo,用以描述兩個對象是否相等,或是其中一個對象大于另外一個對象。泛型允許已經(jīng)實現(xiàn)的類,其對象可以用來互相比較。
Serializable是一個markerinterface沒有任何接口或是字段,僅有一個空的主體,它被用來表示一個類可以被序列化。它的Javadoc描述了他是如何運作,而且不需要被強(qiáng)制編程。
以上就是北大青鳥長沙麓谷校區(qū)java培訓(xùn)機(jī)構(gòu)的小編針對“Java的基礎(chǔ)入門,Java接口教程”的內(nèi)容進(jìn)行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。