<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    302班

    java突擊隊
    posts - 151, comments - 74, trackbacks - 0, articles - 14
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    類與接口的區別

    Posted on 2007-06-15 19:35 停留的風 閱讀(7175) 評論(0)  編輯  收藏

    .類與接口的區別

    :描述了一個實體,包括實體的狀態,也包括實體可能發出的動作。

    接口:定義了一個實體可能發出的動作。但是只是定義了這些動作的原型,沒有實現,也沒有任何狀態信息。

    1.接口與類區別:

    (1)接口有點象一個規范、一個協議,是一個抽象的概念;

    (2)而類則是實現了這個協議,滿足了這個規范的具體實體,是一個具體的概念。

    (3)從程序角度,簡單理解,接口就是函數聲明,類就是函數實現。需要注意的是同一個聲明可能有很多種實現。

    2.接口與抽象類的區別:

    (1)A class can implement any number of interfaces but can subclass at most one abstract class.

    (2)An abstract class can have nonabstract methods, which are usually instance of the TEMPLATE METHOD pattern. All the methods of an interface are abstract,

    whether or not this declaration is explicit.

    (3)An abstract class can declare instance variable that its subclass inherit. An interface cannot declare instance variables, although it can establish static final fields.

    (4)An abstract class can define constructors, an interface cannot.

    (5)An abstract class can have methods whose visibility is protected, private, or none(package);every method in an interface must be public.

    (6)An abstract class inherits form Object, including such method as clone() and equals().

    . 接口的用處主要體現在下面幾個方面:

    (1)通過接口可以實現不相關類的相同行為,而不需要了解對象所對應的類。

    (2)通過接口可以指明多個類需要實現的方法。

    (3)通過接口可以了解對象的交互界面,而不需了解對象所對應的類。

     

    .一些接口的疑問:

    1、從書中看到的是java程序的接口中只定義了常量及空方法,空的方法有什么用呢,還要在類中寫方法體,那還要接口干什么。

     

    :接口中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現體,只不過實現體是空操作。實際上接口沒有定義任何實現體。具體的實現體都是在實現接口的類中,接口只是定義了這些方法的調用方式。

     

    你當然也可以不用接口,直接在類里面寫方法,但是如果你的一組方法需要在很多類里實現,那么把它們抽象出來,做成一個接口規范,不是更好么?

     

    2、一個程序中寫了2個接口,并在同一個類中寫方法體,這與多繼承有什么關系。

     

    :一個類描述了一個實體,這個實體可能是一個復雜的對象,它的動作很多,如果把這些動作分類,用接口a定義其中的某一組動作,接口b定義其中的另外一組動作,這樣的結構,比較清楚。

     

    這種方式具備了多繼承的優點,避免了多繼承的缺陷。實際上在歷史上,接口在很大程度上,是為了解決多繼承帶來的種種問題而設計出來的。

     

    3、包中那些已定義的接口,怎么知道那里面定義了什么方法。

     

    :接口里定義了方法的輸入輸出,這些都是協議,具體的實現都在每個類中。對于很多只需要抽象接口的地方,不需要知道具體的類是什么,只要這個類實現了這個接口就可以了。


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


    網站導航:
     
    主站蜘蛛池模板: 亚洲人成在线精品| 精品亚洲aⅴ在线观看| 亚洲熟妇成人精品一区| 亚洲精品视频在线免费| 亚洲美免无码中文字幕在线| 91在线老王精品免费播放| 亚洲视频在线观看| 91精品国产免费| 亚洲国产成+人+综合| 动漫黄网站免费永久在线观看 | 蜜臀AV免费一区二区三区| 亚洲人成影院在线| 国产精品入口麻豆免费观看| 亚洲日本在线观看网址| 一二三四在线播放免费观看中文版视频 | 亚洲av无码专区国产不乱码| 韩国二级毛片免费播放| 黄色毛片免费在线观看| 国产啪亚洲国产精品无码 | xxxxx免费视频| 亚洲中文字幕无码av| 国产91久久久久久久免费| 免费无码专区毛片高潮喷水 | 亚洲AV日韩精品一区二区三区| 一级毛片在线完整免费观看| 久久夜色精品国产亚洲| 四虎免费影院ww4164h| 亚洲精品宾馆在线精品酒店| 亚洲综合久久夜AV | 精品无码国产污污污免费网站| 77777午夜亚洲| 久久亚洲中文字幕精品一区四| 午夜不卡久久精品无码免费| 亚洲不卡影院午夜在线观看| 亚洲AⅤ无码一区二区三区在线 | 久久伊人久久亚洲综合| 国产精品视频免费一区二区| 日韩精品视频在线观看免费| 亚洲视频手机在线| 伊人久久亚洲综合影院| 84pao国产成视频免费播放|