zhrb的空間

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

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

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

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

              寫(xiě)的有點(diǎn)亂...

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

          評(píng)論

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

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

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


          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 柘城县| 桂东县| 安龙县| 永定县| 额敏县| 卫辉市| 江都市| 阿巴嘎旗| 乡宁县| 松桃| 兴隆县| 桂阳县| 丽江市| 青河县| 白河县| 静海县| 河西区| 家居| 循化| 闸北区| 建阳市| 台东市| 那坡县| 靖西县| 南阳市| 宁明县| 义马市| 上栗县| 隆化县| 赤水市| 蛟河市| 华亭县| 皮山县| 长宁区| 讷河市| 陆丰市| 普格县| 合阳县| 秦安县| 巢湖市| 获嘉县|