- 相關(guān)推薦
Java中接口的使用
接口申明必須有interface關(guān)鍵字和接口的名字,public指明任意類均可以使用這個(gè)接口,默認(rèn)情況下,只有與該接口定義在同一個(gè)包中的類才可以訪問(wèn)這個(gè)接口。extends 與類申明中的extends 基本相同,不同的是一個(gè)接口可以有多個(gè)父接口,用逗號(hào)隔開(kāi)。而一個(gè)類只能有一個(gè)父類。子接口繼承接口中所有的常量和方法。在類的申明中用implements來(lái)表示一個(gè)類實(shí)現(xiàn)某個(gè)接口,在類體中可以使用接口中定義的常量,而且必須實(shí)現(xiàn)接口中定義的所有方法(可以是空的實(shí)現(xiàn)但一定要實(shí)現(xiàn)),否則該類就是一個(gè)抽象類。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口。接口的作用,一言以蔽之,就是標(biāo)志類的類別(type of class)。把不同類型的類歸于不同的接口,可以更好的管理他們。OO的精髓,是對(duì)對(duì)象的抽象,最能體現(xiàn)這一點(diǎn)的就是接口。
接口不是類,尤其是絕對(duì)不能使用new 操作符實(shí)例化接口;
Module md=new Module()//錯(cuò)誤
不過(guò),雖然不能構(gòu)造接口對(duì)象,但還是可以聲明接口變量。
Module md;
接口變量必須指向一個(gè)實(shí)現(xiàn)了該接口的類的對(duì)象;
x=new MotorModule();//只要實(shí)現(xiàn)了Module就對(duì)了
可以用instanceof來(lái)檢驗(yàn)對(duì)象是否實(shí)現(xiàn)了某個(gè)接口(只要它屬于的類或者父類實(shí)現(xiàn)了某個(gè)接口都可以);
if(anObject instanceof Module){...}
接口在軟件發(fā)布的時(shí)候是向用戶公開(kāi)的,用戶可以通過(guò)調(diào)用實(shí)現(xiàn)接口的類的接口方法,而如果不實(shí)現(xiàn)接口用戶是不能調(diào)用的。
也就是我們?梢月(tīng)到的服務(wù)提供商這樣說(shuō):"如果你們的類遵循一個(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類的方法;
{
public ClassItf()
{
//構(gòu)造函數(shù)
}
public String ShowMessage(String MSG) //實(shí)現(xiàn)接口方法ShowMessage()
{
System.out.print(MSG);
return MSG;
}
}
/* usingItf 類調(diào)用了接口方法,來(lái)實(shí)施某一些功能,但是具體的操作有接口實(shí)現(xiàn)類來(lái)操作,
將必要的數(shù)據(jù)通信給接口,實(shí)現(xiàn)了數(shù)據(jù)的通信; 這里如此說(shuō)明并不嚴(yán)謹(jǐn),只是便于初學(xué)者理解
*/
class usingItf //"驅(qū)動(dòng)類"
{
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)類的實(shí)例,還有參數(shù) class usingItf
}
}
【Java中接口的使用】相關(guān)文章:
java中File類的使用方法10-01
Java的接口和抽象類07-09
java中continue跳轉(zhuǎn)語(yǔ)句使用方法06-06
java中File類有哪些使用方法06-30
音源接口使用方法技巧08-09