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

