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

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

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

    zxbyhcsdn

     

    關于抽象類和接口的理解:

    關于抽象類和接口的理解:
     
    抽象類建議這樣來理解好一點:抽象者,不確定也
    就是原本是一個普通的類,但是由于有了一個抽象方法,所以這個類就必須成為一個抽象類.
    為什么啦!
    因為定義成抽象類,就不允許直接實例化了. 想想也是顯然的,因為有一個方法是抽象方法,都沒有實現(xiàn),
    實例化成對象了,然后對象調用這個方法不久瓜了么?
    這就好比車子還沒有安上方向盤,如果要開的話,就沒辦法控制方向了.
    抽象類使用的場合:
    類的部分方法是確定的,而另外部分方法是不確定的,只有通過繼承的子類去確定這部分方法,
    但是子類可以使用抽象類的確定的方法(重用).

    這兒需要注意一點:就是不要去Override 父類的非抽象方法,那寫方法是給你重用的,不是給你置換的.
    原則:繼承應當用來擴展超類的功能,而不是置換或者撤銷超類的功能
    比如說,你有一個貓,然后你把狗繼承自貓,但是貓可以爬樹,狗不能.就只有把那個爬樹的功能撤銷了.想想這是多么荒唐的事情啊!!

    那么何為接口啦:
    就是說有一個類,所有的方法都是不確定的.
    比如說 平面形狀,總歸有獲取設置邊長,面積這些方法吧,但是怎么去實現(xiàn)是不確定的.
    好像 形狀這玩意兒 的確找不到能確定的方法.那么就可以定義成一個接口.
    接口允許有 public static final 的屬性, 但是不推薦這樣用,這是一種錯誤的用法.
    可以認為接口就是一個特殊的 抽象類(所有的方法都是不確定的)
    然后接口有一個好處,就是可多繼承.
    舉一個例子,說明抽象類和接口一起用的地方
    比如說,門這個類有Opern和Close兩個方法,但是有一種特殊的門需要一個報警的功能,
    但是報警不是門的特征,是報警器的特征,故可以把報警設置為一個接口
    那么報警的門就從門這個抽象類和報警接口繼承

    posted on 2008-07-23 19:03 zxbyh 閱讀(1583) 評論(6)  編輯  收藏 所屬分類: OOAD

    評論

    # re: 關于抽象類和接口的理解: 2008-07-23 22:19 藍雪沙

    恩,寫的挺不錯,特別是 接口 最后面舉的 門 例子 我感覺非常到位。

    希望樓主繼續(xù)總結,Java中像這樣的有必要徹底清楚的很多。   回復  更多評論   

    # re: 關于抽象類和接口的理解: 2008-07-24 08:41 wxm

    我是這樣理解的,從目的上來說,抽象類主要是為了代碼或算法的重用,而接口是一種約定,從功能上來說,抽象類有實現(xiàn)部分,但是不能多繼承,接口能多繼承,但是不能有實現(xiàn),日常使用中,應該從使用的目的上來決定是否采用抽象類或接口,而不是語法功能上  回復  更多評論   

    # re: 關于抽象類和接口的理解: 2008-07-24 13:01 zhuxing

    同意樓上(wxm )說的,建議一般不要從語法的層面進行區(qū)分。

    很關鍵的一個區(qū)別:接口更加靈活,同時能夠更好地支持動態(tài)擴展。例如,類之間的繼承結構體現(xiàn)出了一個中縱向的結構,而接口則可以橫向的切入。
    再者,接口一般用來封裝一個抽象的主題,多表現(xiàn)在行為的變化封裝和擴展。



    還有,我們在設計一個類型的時候,考慮兩件事情:
    1、定義其責任,即對外提供的服務,并定義通信的規(guī)則。
    2、如何創(chuàng)建和實現(xiàn)化改類型。

    1解決了如何使用類型的問題,2解決了如何創(chuàng)建的問題。接口相比抽象類能更加自然的將兩者進行解耦,而且能夠明顯加大2的自由度,因為很多時候我們是用工廠的方式對外提供實例。

    其實,很多的爭論點在如何放置公共功能的問題。其實很多牛人寫程序,很多時候很自然的運用Interface/Default Impl的方式,即:你定義了一個接口,順便提供一個相應的抽象類,提供一些默認的實現(xiàn)。

      回復  更多評論   

    # re: 關于抽象類和接口的理解: [未登錄] 2008-07-24 14:03 zxbyh

    看了以上兩位的評論,覺得提出的意見很好,
    但是我覺得既然也不是什么非腦筋的事情,何不在語法和應有的兩個層面上都理解清楚啦.比較基礎的東西,理解透徹點是好事情.

    1.
    抽象類使用的場合:
    類的部分方法是確定的,而另外部分方法是不確定的,只有通過繼承的子類去確定這部分方法,
    但是子類可以使用抽象類的確定的方法(重用).
    ------------------------------------------------------
    這句話的意思就是說抽象類主要是為了代碼或算法的重用.


    2.
    那么何為接口啦:
    就是說有一個類,所有的方法都是不確定的.
    比如說 平面形狀,總歸有獲取設置邊長,面積這些方法吧,但是怎么去實現(xiàn)是不確定的.
    ----------------------------------------------------------
    上面這一段話,需要改一下,就是說有一個類,所有的方法都是不確定的.但是必須要有這些方法.
    換言之:接口是一種約定,是一種規(guī)范,你必須滿足他,但是不關心你怎么實現(xiàn).
      回復  更多評論   

    # re: 關于抽象類和接口的理解: [未登錄] 2008-07-24 19:47 kevin

    @zxbyh
    你這么一解釋,那問題就大了去了 。。。。  回復  更多評論   

    # re: 關于抽象類和接口的理解: 2008-07-25 00:43 stanleyxu

    abstract class is related to oop. it can be considered as a strict relationship, just like couple.
    interface is an easy-to-bind. it can be considered as a loose relationship, just like one night stand  回復  更多評論   

    導航

    統(tǒng)計

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品亚洲精品国产色婷| 亚洲国产精品无码久久青草| 亚洲AV人无码综合在线观看| 一个人免费观看www视频| 免费日本黄色网址| 亚洲Aⅴ在线无码播放毛片一线天| 1024免费福利永久观看网站| 亚洲第一二三四区| 色片在线免费观看| 亚洲影视自拍揄拍愉拍| AA免费观看的1000部电影| 亚洲国产日韩视频观看| 女性无套免费网站在线看| 亚洲乱码国产乱码精华| 四虎影视永久免费观看地址 | 精品国产精品久久一区免费式| 亚洲综合av一区二区三区不卡| 午夜dj在线观看免费视频| 羞羞漫画在线成人漫画阅读免费 | 亚洲综合网站色欲色欲| 永久免费av无码网站yy| 久久亚洲AV成人无码软件| 成人在线免费看片| 亚洲国产欧洲综合997久久| 亚洲成a人片在线观看日本麻豆 | 久草视频在线免费| 亚洲av无码专区在线电影 | 亚洲免费闲人蜜桃| 亚洲色大成网站www永久网站| 免费成人在线观看| 亚洲免费人成在线视频观看| 亚洲制服丝袜第一页| 亚洲国产精品日韩专区AV| 免费看又黄又无码的网站| jiz zz在亚洲| 久久影视综合亚洲| 黄瓜视频影院在线观看免费| 深夜a级毛片免费视频| 亚洲麻豆精品果冻传媒| 四虎永久免费网站免费观看| 一级毛片全部免费播放|