欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
抽象類(lèi)和接口三 - Amote的日志 - 網(wǎng)易博客

抽象類(lèi)和接口三

j2se日志   2009-11-08 00:00   閱讀22   評論0  
字號:    

 

8.9.3 抽象類(lèi)和接口的比較

    抽象類(lèi)和接口都是進(jìn)行面向對象設計時(shí)專(zhuān)用的設計結構,在實(shí)際進(jìn)行項目設計時(shí),經(jīng)常需要考慮的問(wèn)題就是——“使用抽象類(lèi)還是接口”?下面通過(guò)對于抽象類(lèi)和接口進(jìn)行簡(jiǎn)單的比較,熟悉兩者之間的區別和聯(lián)系,從而在實(shí)際設計時(shí)使用恰當的結構。

    1. 什么時(shí)候使用抽象類(lèi)或接口?

    當設計中為了規范類(lèi)中方法聲明的結構(即類(lèi)的行為)時(shí),使用抽象類(lèi)或接口。也就是強制子類(lèi)對外部提供統一的方法聲明時(shí),使用抽象類(lèi)或接口。

    2. 抽象類(lèi)和接口的區別(不同點(diǎn))

    a)抽象類(lèi)是類(lèi),而接口是接口。

    因為抽象類(lèi)是一個(gè)類(lèi),所以類(lèi)內部可以包含的內容(構造方法、方法和屬性等)在抽象類(lèi)內部都可以存在,當然抽象類(lèi)也受到類(lèi)的單重繼承的限制。而接口是接口類(lèi)型,所以接口內部只能包含常量屬性和抽象方法,但是一個(gè)類(lèi)可以實(shí)現多個(gè)接口,所以接口不受類(lèi)的單重繼承的限制。

    b)抽象類(lèi)內部可以包含實(shí)體方法,而接口不能

    抽象類(lèi)是一個(gè)類(lèi),所以在抽象類(lèi)內部既可以包含抽象方法也可以包含實(shí)體方法,而接口內部的每個(gè)方法都必須是抽象方法。

    c)抽象類(lèi)可以繼承類(lèi),而接口不能

    抽象類(lèi)是一個(gè)類(lèi),所以在設計時(shí)可以使抽象類(lèi)繼承其它的類(lèi),在已有類(lèi)的基礎上進(jìn)行設計,但是接口不能繼承類(lèi)。

    3. 抽象類(lèi)和接口的聯(lián)系(相同點(diǎn))

    a)抽象類(lèi)和接口都可以聲明對象,但是都只能使用子類(lèi)的構造方法進(jìn)行創(chuàng )建。

    b)抽象類(lèi)和接口內部都可以包含抽象方法。

    按照Java語(yǔ)言的語(yǔ)法,子類(lèi)在繼承抽象類(lèi)或實(shí)現接口時(shí),都必須覆蓋這些抽象方法,否則必須聲明為抽象類(lèi)。

    c)抽象類(lèi)和接口都可以代表一種類(lèi)型,從而可以統一子類(lèi)對象的類(lèi)型,獲得良好的可擴展性。

    4. 什么時(shí)候使用抽象類(lèi)?

    當滿(mǎn)足以下的條件時(shí),最好使用抽象類(lèi)進(jìn)行設計:

    a)子類(lèi)不繼承其它父類(lèi)

    b)子類(lèi)中存在完全相同的功能實(shí)現的方法

    c)子類(lèi)中存在相同的屬性

    d)設計出的結構需要繼承其它類(lèi)

    當需要滿(mǎn)足d條件時(shí),只能使用抽象類(lèi),否則也可以考慮使用接口實(shí)現。

    5. 什么時(shí)候使用接口?

    當滿(mǎn)足以下的條件時(shí),最好使用接口進(jìn)行設計:

    a)子類(lèi)已經(jīng)繼承了其它父類(lèi)

    b)子類(lèi)中不存在完全相同的功能實(shí)現方法

    c)子類(lèi)中不存在相同的屬性

    d)設計出的結構不需要繼承其它類(lèi)

    當需要滿(mǎn)足a條件時(shí),只能使用接口,否則也可以考慮使用抽象類(lèi)實(shí)現。

    6. 抽象類(lèi)和接口的其它用途

    a)禁止創(chuàng )建該類(lèi)的對象時(shí),可以把該類(lèi)聲明為抽象類(lèi)。

    b)當需要存儲大量的常量數據,而這些常量數據將會(huì )在項目中的多個(gè)類(lèi)之間使用時(shí),可以使用接口。

    c)當需要統一具有某種功能的類(lèi)的對象時(shí),可以使用接口。例如Serializable接口。

    當然,只有經(jīng)過(guò)大量的系統設計訓練以后,才可以更加深刻的理解抽象類(lèi)和接口的區別和聯(lián)系,從而更加自如的進(jìn)行選擇。

    另外,需要說(shuō)明的是,不是每個(gè)項目中都必須使用抽象類(lèi)或接口的。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
在java中,什么是接口,接口的特點(diǎn)是什么?
Java基礎知識總結
Java繼承的基本概念及其限制 總結
php面向對象詳解
入學(xué)基礎day09筆記
php學(xué)習筆記
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久