隨筆-8  評論-19  文章-2  trackbacks-0
          Java中看到接口,第一個想到的可能就是C++中的多重繼承和Java中的另外一個關鍵字abstract。從另外一個角度實現多重繼承是接口的功能之一,接口的存在可以使Java 中的對象可以向上轉型為多個基類型,并且和抽象類一樣可以防止他人創建該類的對象,因為接口不允許創建對象。

          ?

          interface 關鍵字用來聲明一個接口,它可以產生一個完全抽象的類,并且不提供任何具體實現。 interface 的特性整理如下:

          1.??????? 接口中的方法可以有參數列表和返回類型,但不能有任何方法體。

          2.??????? 接口中可以包含字段,但是會被隱式的聲明為 static final

          3.??????? 接口中的字段只是被存儲在該接口的靜態存儲區域內,而不屬于該接口。

          4.??????? 接口中的方法可以被聲明為 public 或不聲明,但結果都會按照 public 類型處理。

          5.??????? 當實現一個接口時,需要將被定義的方法聲明為 public 類型的,否則為默認訪問類型, Java 編譯器不允許這種情況。

          6.??????? 如果沒有實現接口中所有方法,那么創建的仍然是一個接口。

          7.??????? 擴展一個接口來生成新的接口應使用關鍵字 extends ,實現一個接口使用 implements

          ?

          interface 在某些地方和 abstract 有相似的地方,但是采用哪種方式來聲明類主要參照以下兩點:

          1.??????? 如果要創建不帶任何方法定義和成員變量的基類,那么就應該選擇接口而不是抽象類。

          2.??????? 如果知道某個類應該是基類,那么第一個選擇的應該是讓它成為一個接口,只有在必須要有方法定義和成員變量的時候,才應該選擇抽象類。因為抽象類中允許存在一個或多個被具體實現的方法,只要方法沒有被全部實現該類就仍是抽象類。

          ?

          以上就是接口的基本特性和應用的領域,但是接口絕不僅僅如此,在 Java 語法結構中,接口可以被嵌套,既可以被某個類嵌套,也可以被接口嵌套。這在實際開發中可能應用的不多,但也是它的特性之一。需要注意的是,在實現某個接口時,并不需要實現嵌套在其內部的任何接口,而且, private 接口不能在定義它的類之外被實現。

          posted on 2006-05-30 14:23 jie_java 閱讀(3549) 評論(3)  編輯  收藏

          評論:
          # re: Java接口特性學習 2006-05-31 09:07 | 初學者
          “如果沒有實現接口中所有方法,那么創建的仍然是一個接口。”那就是實現了部分方法;可前面又說“接口中的方法可以有參數列表和返回類型,但不能有任何方法體。”那這個實現了部分方法的“接口”能被稱為接口嗎?  回復  更多評論
            
          # re: Java接口特性學習 2006-10-15 00:32 | 初學者123
          樓上的 ,我也是初學的,我認為你說的“接口”不應該叫接口,應該叫抽象類!

          因為你說的第2個接口,它其實不是接口,而是一個實現類,這個類如果不能完全實現他父接口的方法,那么它就要聲明為抽象類!!

          以上是個人觀點

            回復  更多評論
            
          # re: Java接口特性學習 2006-10-27 21:44 | 老同
          樓上的理解的比較的深刻,我真是受益了!!!!!!!!!!!  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 河北区| 灵川县| 碌曲县| 新化县| 吉隆县| 图片| 承德县| 榆林市| 呼伦贝尔市| 衡南县| 南溪县| 南平市| 呼玛县| 岐山县| 如皋市| 昭觉县| 保德县| 庆云县| 江油市| 新巴尔虎左旗| 斗六市| 岢岚县| 双鸭山市| 泸定县| 凤翔县| 福海县| 三河市| 怀来县| 桦川县| 南平市| 遂川县| 北安市| 壶关县| 清水县| 贵州省| 襄樊市| 海兴县| 曲麻莱县| 梧州市| 隆尧县| 平凉市|