java 中接口和抽象類的區(qū)別與對比
java 中接口和抽象類的區(qū)別與對比
接口和抽象類的概念不一樣。
接口是對動(dòng)作的抽象,抽象類是對根源的抽象。
抽象類表示的是,這個(gè)對象是什么。接口表示的是,這個(gè)對象能做什么。比如,男人,女人,這兩個(gè)類(如果是類的話……),他們的抽象類是人。說明,他們都是人。
人可以吃東西,狗也可以吃東西,你可以把“吃東西”定義成一個(gè)接口,然后讓這些類去實(shí)現(xiàn)它.
所以,在高級語言上,一個(gè)類只能繼承一個(gè)類(抽象類)(正如人不可能同時(shí)是生物和非生物),但是可以實(shí)現(xiàn)多個(gè)接口(吃飯接口、走路接口)。
第一點(diǎn):接口是抽象類的變體,接口中所有的方法都是抽象的。而抽象類是聲明方法的存在而不去實(shí)現(xiàn)它的類。
第二點(diǎn):接口可以多繼承,抽象類不行
第三點(diǎn):接口定義方法,不能實(shí)現(xiàn),而抽象類可以實(shí)現(xiàn)部分方法。
第四點(diǎn) : 接口中基本數(shù)據(jù)類型為static 而抽類象不是的。
當(dāng)你關(guān)注一個(gè)事物的本質(zhì)的時(shí)候,用抽象類;當(dāng)你關(guān)注一個(gè)操作的時(shí)候,用接口。
抽象類的功能要遠(yuǎn)超過接口,但是,定義抽象類的代價(jià)高。因?yàn)楦呒壵Z言來說(從實(shí)際設(shè)計(jì)上來說也是)每個(gè)類只能繼承一個(gè)類。在這個(gè)類中,你必須繼承或編寫出其所有子類的.
所有共性。雖然接口在功能上會(huì)弱化許多,但是它只是針對一個(gè)動(dòng)作的描述。而且你可以在一個(gè)類中同時(shí)實(shí)現(xiàn)多個(gè)接口。在設(shè)計(jì)階段會(huì)降低難度的。
以上就是java中接口與抽象類的詳解,如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
IDEA集成git和使用步驟的實(shí)現(xiàn)方法
這篇文章主要介紹了IDEA集成git和使用步驟的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Java基于余弦方法實(shí)現(xiàn)的計(jì)算相似度算法示例
這篇文章主要介紹了Java基于余弦方法實(shí)現(xiàn)的計(jì)算相似度算法,簡單說明了余弦相似性的概念、原理并結(jié)合實(shí)例形式分析了java實(shí)現(xiàn)余弦相似性算法的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Springboot配置Swagger的實(shí)現(xiàn)示例
Swagger 是一種提高 API 開發(fā)和維護(hù)效率的工具,它使開發(fā)者能夠更輕松地構(gòu)建、測試和文檔化 API,本文主要介紹了Springboot配置Swagger的實(shí)現(xiàn)示例,感興趣的可以了解一下2023-10-10
Mybatis空值關(guān)聯(lián)的問題解析及解決方案
這篇文章給大家介紹了Mybatis空值關(guān)聯(lián)的問題解析及解決方案,文中通過代碼示例介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01
springboot2.2.2集成dubbo的實(shí)現(xiàn)方法
這篇文章主要介紹了springboot2.2.2集成dubbo的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01
用Java實(shí)現(xiàn)全國天氣預(yù)報(bào)的api接口調(diào)用示例
查詢天氣預(yù)報(bào)在APP中常用的一個(gè)常用功能,本文實(shí)例講述了java調(diào)用中國天氣網(wǎng)api獲得天氣預(yù)報(bào)信息的方法。分享給大家供大家參考。2016-10-10

