java接口中的default(默認(rèn))使用方式
java接口的default(默認(rèn))使用
定義
Java的接口中有一種特殊的方法,叫做默認(rèn)方法。
接口中的默認(rèn)方法有以下特點(diǎn):
- default方法可以有方法體。
- 接口中的普通方法必須被實(shí)現(xiàn)類重寫(xiě);默認(rèn)方法可以不被實(shí)現(xiàn)類重寫(xiě)。
作用
這個(gè)特點(diǎn)在實(shí)踐中的具體作用是:
- 當(dāng)我們進(jìn)行業(yè)務(wù)擴(kuò)展時(shí),需要在接口中新增方法。
- 如果新增的這個(gè)方法寫(xiě)成普通方法的話,那么需要在該接口所有的實(shí)現(xiàn)類中都重寫(xiě)這個(gè)方法。
- 如果新增的方法定義為default類型,就不需要在所有的實(shí)現(xiàn)類中全部重寫(xiě)該default方法,哪個(gè)實(shí)現(xiàn)類需要新增該方法,就在哪個(gè)實(shí)現(xiàn)類中進(jìn)行實(shí)現(xiàn)。
但是,需要注意在什么情況下,default的使用會(huì)受限
- 如果一個(gè)實(shí)現(xiàn)類只實(shí)現(xiàn)了一個(gè)接口,那么可以不用重寫(xiě)接口中的默認(rèn)方法。
- 如果一個(gè)實(shí)現(xiàn)類實(shí)現(xiàn)了多個(gè)接口,并且這些接口中有兩個(gè)接口的默認(rèn)方法是一樣的,那么就必須在實(shí)現(xiàn)類中重寫(xiě)默認(rèn)方法。
默認(rèn)方法可以通過(guò)接口的實(shí)現(xiàn)對(duì)象直接調(diào)用,可以被接口的實(shí)現(xiàn)類重寫(xiě)。
interface test{ default public void print() { System.out.println("This is a interface with default"); } }
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于javassist進(jìn)行動(dòng)態(tài)編程過(guò)程解析
這篇文章主要介紹了基于javassist進(jìn)行動(dòng)態(tài)編程過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05解決ObjectMapper.convertValue() 遇到的一些問(wèn)題
這篇文章主要介紹了解決ObjectMapper.convertValue() 遇到的一些問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06java實(shí)現(xiàn)紙牌游戲之小貓釣魚(yú)算法
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)紙牌游戲之小貓釣魚(yú)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01MyBatis中有關(guān)int和Integer的使用方式
這篇文章主要介紹了MyBatis中有關(guān)int和Integer的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03SpringBoot中使用JWT的實(shí)戰(zhàn)
本文主要介紹了SpringBoot中使用JWT的實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06