zhrb的空間

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            20 隨筆 :: 0 文章 :: 29 評論 :: 0 Trackbacks

                  接口主要是用來描述這個系統(tǒng)有些什么功能,應該怎么調(diào)用這些功能,是更高的一
          層抽象。主要是用來表現(xiàn)給外界看。同時接口比較穩(wěn)定,不能隨便變來變?nèi)ァR驗槟阋?br /> 變,對于外界來說你的表現(xiàn)就變了。接口對于系統(tǒng)來說,相當于一個規(guī)范的描述,感覺
          有點像虛擬機規(guī)范之于虛擬機。接口對于編程人員來說,相當于幫你隱藏了一些東西,
          這寫隱藏(如何實現(xiàn))的東西,你不需要去關(guān)注。

              抽象類,在語法上的區(qū)別,你也說了。實際上抽象類也可以部分的實現(xiàn)接口的功能
          ,即描述一些東西給外界看。抽象類更像一個系統(tǒng)的骨架,里面有一些基本的需要共享
          的代碼。和一些已經(jīng)實現(xiàn)好的方法。想想,如果全都用接口代替抽象類的話,那么我們
          底下子類的編寫就需要編寫大量的代碼。而這些子類,本可以實現(xiàn)代碼和屬性的共享的
          。所以抽象類,更多的是一個對內(nèi)的東西。

              可以說接口是比抽象類更抽象的一個東西。接口和抽象類關(guān)注的地方不一樣。當然
          從邏輯上來看,他們的區(qū)別不是那么的明顯。但是從用法上來看,他們還是有比較大的
          區(qū)別。

              寫的有點亂...

          posted on 2008-02-28 15:43 zhrb 閱讀(1456) 評論(3)  編輯  收藏

          評論

          # re: 接口與抽象類的區(qū)別.... 2008-07-18 09:03 蒙娜麗莎
          抽象方法是必須實現(xiàn)的方法。就象動物都要呼吸。但是魚用鰓呼吸,豬用肺呼吸。
          動物類要有呼吸方法。怎么呼吸就是子類的事了。
          現(xiàn)在有很多討論和建議提倡用interface代替abstract類,兩者從理論上可以做一般性的混用,但是在實際應用中,他們還是有一定區(qū)別的。抽象類一般作為公共的父類為子類的擴展提供基礎(chǔ),這里的擴展包括了屬性上和行為上的。而接口一般來說不考慮屬性,只考慮方法,使得子類可以自由的填補或者擴展接口所定義的方法,就像JAVA王子所說的事件中的適配器就是一個很好的應用。
          用一個簡單的例子,比如說一個教師,我們把它作為一個抽象類,有自己的屬性,比如說年齡,教育程度,教師編號等等,而教師也是分很多種類的,我們就可以繼承教師類而擴展特有的種類屬性,而普遍屬性已經(jīng)直接繼承了下來。
          而接口呢~還是拿教師做例子,教師的行為很多,除了和普通人相同的以外,還有職業(yè)相關(guān)的行為,比如改考卷,講課等等,我們把這些行為定義成無body的方法,作為一個集合,它是一個interface。而教師張三李四的各自行為特點又有不同,那么他們就可以擴展自己的行為body。從這點意義上來說,interface偏重于行為。
          總之,在許多情況下,接口確實可以代替抽象類,如果你不需要刻意表達屬性上的繼承的話。  回復  更多評論
            

          # re: 接口與抽象類的區(qū)別....[未登錄] 2008-07-18 10:45 zhrb
          @蒙娜麗莎
          說的不錯,主要還是要到實踐中應用才能具體的指導怎么應用這兩者。多看多用  回復  更多評論
            

          # re: 接口與抽象類的區(qū)別.... 2009-05-31 09:04 12
          @蒙娜麗莎
          接口和抽象類差不多  回復  更多評論
            


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


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 宁明县| 仙桃市| 措美县| 平远县| 永济市| 鹿邑县| 武宣县| 丹阳市| 观塘区| 雷波县| 修文县| 汝城县| 宜城市| 定兴县| 环江| 西峡县| 桐乡市| 两当县| 双鸭山市| 山丹县| 赤峰市| 沾益县| 神池县| 怀宁县| 马山县| 大英县| 北流市| 富宁县| 乐都县| 皮山县| 棋牌| 历史| 武功县| 平南县| 双峰县| 甘南县| 玉田县| 元谋县| 尉氏县| 准格尔旗| 麦盖提县|