同一個目標,同一個夢想

          One Target,One Dream
          posts - 25, comments - 11, trackbacks - 0, articles - 37

          java接口和抽象類的區別

          Posted on 2009-11-30 19:46 J2EE Home工作室 閱讀(496) 評論(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


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


          網站導航:
           
          主站蜘蛛池模板: 昆山市| 昌都县| 大足县| 泗水县| 平舆县| 乌拉特前旗| 张家口市| 桐庐县| 竹山县| 樟树市| 饶阳县| 灵丘县| 镇远县| 铜陵市| 乐清市| 武定县| 鲁山县| 黄大仙区| 衡阳市| 涞水县| 正安县| 嵊州市| 鲁山县| 个旧市| 东乡| 武宁县| 富民县| 宁强县| 玉屏| 平度市| 永靖县| 祁连县| 任丘市| 桃园县| 漾濞| 镇坪县| 新邵县| 宝山区| 青冈县| 海城市| 广元市|