內蒙古java團隊

          j2se,j2ee開發組
          posts - 139, comments - 212, trackbacks - 0, articles - 65
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java中接口的使用[轉]

          Posted on 2010-04-25 22:17 帥子 閱讀(583) 評論(0)  編輯  收藏 所屬分類: j2se技術專區
          接口申明必須有interface關鍵字和接口的名字,public指明任意類均可以使用這個接口,默認情況下,只有與該接口定義在同一個包中的類才可以訪問這個接口。extends 與類申明中的extends 基本相同,不同的是一個接口可以有多個父接口,用逗號隔開。而一個類只能有一個父類。子接口繼承接口中所有的常量和方法。在類的申明中用implements來表示一個類實現某個接口,在類體中可以使用接口中定義的常量,而且必須實現接口中定義的所有方法(可以是空的實現但一定要實現),否則該類就是一個抽象類。一個類可以實現多個接口。接口的作用,一言以蔽之,就是標志類的類別(type of class)。把不同類型的類歸于不同的接口,可以更好的管理他們。OO的精髓,我以為,是對對象的抽象,最能體現這一點的就是接口。

            接口不是類,尤其是絕對不能使用new 操作符實例化接口;

            Module md=new Module()//錯誤

            不過,雖然不能構造接口對象,但還是可以聲明接口變量。

            Module md;

            接口變量必須指向一個實現了該接口的類的對象;

            x=new MotorModule();//只要實現了Module就對了

            可以用instanceof來檢驗對象是否實現了某個接口(只要它屬于的類或者父類實現了某個接口都可以);

            if(anObject instanceof Module){...}

            接口在軟件發布的時候是向用戶公開的,用戶可以通過調用實現接口的類的接口方法,而如果不實現接口用戶是不能調用的。

            也就是我們常可以聽到的服務提供商這樣說:"如果你們的類遵循一個特定的接口,那么我們將執行這些服務

            java 接口的使用舉例

            //以下程序說明 并不嚴謹,只是為了方便初學者初步的理解接口的應用

            interface Interface???????? //接口?? {

            String ShowMessage(String MSG);? //接口方法,因為接口方法默認是public abstract 所以這里可以不用顯示書寫

            }

            class ClassItf implements Interface?? //全部實現了接口interface類的方法;

            {

            public ClassItf()

            {

            //構造函數

            }

            public String ShowMessage(String MSG)? //實現接口方法ShowMessage()

            {

            System.out.print(MSG);

            return MSG;

            }

            }

            /*?? usingItf 類調用了接口方法,來實施某一些功能,但是具體的操作有接口實現類來操作,

            將必要的數據通信給接口,實現了數據的通信;? 這里如此說明并不嚴謹,只是便于初學者理解

            */

            class usingItf?? //"驅動類"

            {

            public String getstring;

            public void usingItf(Interface inf,String MSG)? //使用了接口定義的方法 注意:使用了Interface 的引用 inf

            {

            getstring=inf.ShowMessage(MSG);

            }

            }

            public class Test????? //Test函數

            {

            public static void main(String args[])

            {

            ClassItf newClassItf=new ClassItf();

            usingItf aa =new usingItf();

            aa.usingItf(newClassItf,"This is the firstpage!!!!"); // 注意這里傳遞的接口實現類的實例,還有參數 class usingItf

            }

            }

          主站蜘蛛池模板: 临颍县| 东阳市| 根河市| 金秀| 新沂市| 思南县| 丹凤县| 万全县| 晋江市| 宁德市| 揭东县| 建宁县| 磴口县| 嘉义市| 布拖县| 铜山县| 陇南市| 明光市| 阿合奇县| 开封市| 科技| 团风县| 城固县| 博罗县| 军事| 沁阳市| 乡城县| 凉城县| 徐州市| 新宁县| 绥江县| 华坪县| 乐都县| 庆城县| 三江| 隆德县| 宁南县| 洪雅县| 荥阳市| 平湖市| 陇南市|