zhrb的空間

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

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

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

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

              寫的有點亂...

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

          評論

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

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

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


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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 民乐县| 抚顺市| 忻州市| 莲花县| 乌恰县| 邢台市| 海门市| 汨罗市| 肇庆市| 南投市| 浮山县| 武安市| 旬邑县| 藁城市| 托里县| 巴中市| 博爱县| 汪清县| 安康市| 自治县| 连城县| 清河县| 揭阳市| 康保县| 永仁县| 九江县| 凤冈县| 图们市| 达州市| 广河县| 辉南县| 荆门市| 乌兰县| 红桥区| 安徽省| 台州市| 舒城县| 鹤壁市| 慈利县| 汝阳县| 偃师市|