posts - 25, comments - 11, trackbacks - 0, articles - 37

          java接口和抽象類的區別

          Posted on 2009-11-30 19:46 J2EE Home工作室 閱讀(501) 評論(0)  編輯  收藏 所屬分類: My Q/A

          java接口和抽象類的區別 收藏
          簡單來說, 接口是公開的,里面不能有私有的方法或變量,是用于讓別人使用的,而抽象類是可以有私有方法或私有變量的,另外,實現接口的一定要實現接口里定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法。
          一般的應用里,最頂級的是接口,然后是抽象類實現接口,最后才到具體類實現。
          還有,接口可以實現多重繼承,而一個類只能繼承一個超類,但可以通過繼承多個接口實現多重繼承,接口還有標識(里面沒有任何方法,如Remote接口)和數據共享(里面的變量全是常量)的作用.

          1.abstract class 在 Java 語言中表示的是一種繼承關系,一個類只能使用一次繼承關系。但是,一個類卻可以實現多個interface.
          2.在abstract class 中可以有自己的數據成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態的不能被修改的數據成員(也就是必須是 static final的,不過在 interface中一般不定義數據成員),所有的成員方法都是abstract的。
          3.abstract class和interface所反映出的設計理念不同。其實abstract class表示的是"is-a"關系,interface表示的是"like-a"關系。
          4.實現抽象類和接口的類必須實現其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實現方法。
          5.接口中定義的變量默認是public static final 型,且必須給其初值,所以實現類中不能重新定義,也不能改變其值。
          6.抽象類中的變量默認是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。
          7.接口中的方法默認都是 public,abstract 類型的。


          本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/lpdb2001/archive/2008/08/04/2765595.aspx


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


          網站導航:
           
          主站蜘蛛池模板: 武穴市| 开原市| 德安县| 拉孜县| 华容县| 禹州市| 安龙县| 高尔夫| 寿光市| 乌苏市| 色达县| 新源县| 马龙县| 金川县| 河源市| 武鸣县| 茂名市| 宜阳县| 嘉善县| 原平市| 贵州省| 舞钢市| 大宁县| 绵阳市| 福清市| 辛集市| 温泉县| 湖口县| 阿勒泰市| 庄浪县| 哈尔滨市| 贵南县| 广灵县| 普安县| 辽阳县| 大田县| 永嘉县| 宁安市| 福建省| 永定县| 株洲市|