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
Java接口如何定義方法05-18
java中File類(lèi)的使用方法11-13
Java的接口和抽象類(lèi)11-11
音源接口使用方法技巧10-27