接口是作為系統(tǒng)與外界交互的窗口。
在Java語(yǔ)言中,接口有兩種意思:
一是指概念性的接口,即指系統(tǒng)對(duì)外提供的所有服務(wù)。類的所有能被外部使用者訪問(wèn)的方法構(gòu)成了類的接口;
二是指用interface關(guān)鍵字定義的實(shí)實(shí)在在的接口,也稱為接口類型。它用于明確地描述系統(tǒng)對(duì)外提供的所有服務(wù),能夠更加清晰地把系統(tǒng)的實(shí)現(xiàn)細(xì)節(jié)與接口分離。
接口對(duì)其成員變量和方法做了許多限制,接口的特征歸納如下:
???? (1)定義接口時(shí),其中訪問(wèn)權(quán)限必須是public的;
????????? public interface A {...}
???? (2)接口中的成員變量默認(rèn)都是public、static、final類型的,必須被顯式地初始化;
???? (3)接口中的方法默認(rèn)都是public、abstract類型的;
???? (4)接口中只能包含public、static、final類型的成員變量和public、abstract類型的成員方法。不能在接口中定義實(shí)例變量、非抽象的實(shí)例方法及靜態(tài)方法(接口不允許有具體方法);
????? 如:接口中不能有main()方法。
???? (5)接口沒(méi)有構(gòu)造方法,不能被實(shí)例化。
???? (6)一個(gè)接口不能實(shí)現(xiàn)另一個(gè)接口,但它可以繼承多個(gè)其他接口;
???? public interface A {???????????? public interface B {
??????? public void methodA();?????????? public void methodB();
???? }??????????????????????????????? }
???? public interface C extends A,B { //接口C是復(fù)合接口
??????? public void methodC();
???? }
????? (7)接口必須通過(guò)類來(lái)實(shí)現(xiàn)它的抽象方法。類實(shí)現(xiàn)接口的關(guān)鍵字為implements
????????? public class AImp implements A {...}
????? (8)與子類繼承父類相似,當(dāng)類實(shí)現(xiàn)了某個(gè)接口時(shí),它必須實(shí)現(xiàn)接口中所有的抽象方法,否則這個(gè)類必須被定義為抽象類;
????? (9)不允許創(chuàng)建接口的實(shí)例,但允許定義接口類型的引用變量,該變量引用實(shí)現(xiàn)了這個(gè)接口的類的實(shí)例。
????? (10)一個(gè)類只能繼承一個(gè)直接的父類,但能實(shí)現(xiàn)多個(gè)接口。
????????? public class Apple extends Fruit implements A,B,C {...}
posted on 2006-11-29 00:41
EricWong 閱讀(323)
評(píng)論(0) 編輯 收藏 所屬分類:
Java