Jdk1.8新特性(一) 接口的default方法
Jdk1.8之前的接口中通常只聲明方法的簽名,方法的具體實現(xiàn)在子類中進行。Jdk1.8打破了這樣的用法:接口中可以實現(xiàn)具體的方法體,只需要加上關(guān)鍵字static或者default修飾即可。
1)使用static來修飾的稱之為靜態(tài)方法,靜態(tài)方法通過接口名來調(diào)用;
2)使用default來修飾的稱之為默認方法,默認方法通過對象實例來調(diào)用;
靜態(tài)方法和默認方法都有自己的方法體,用于提供一套默認的實現(xiàn),這樣,子類對于該方法就不需要強制來實現(xiàn),可以選擇使用默認的實現(xiàn),也可以重寫自己的實現(xiàn)。當為接口擴展方法時,只需要提供該方法的默認實現(xiàn)即可。至于對應(yīng)實現(xiàn)類可以重寫也可以使用默認的實現(xiàn),這樣所有的實現(xiàn)類就不會報語法錯誤:aaa不是抽象的,并且未覆蓋bbb中的抽象方法。
使用示例:
IGreeting接口定義了三個方法:一個普通的抽象方法,一個靜態(tài)方法,一個默認方法
定義接口的實現(xiàn)類,通過idea的提示我們可以看到子類只能實現(xiàn)抽象方法和默認方法,而不能實現(xiàn)靜態(tài)方法。
運行結(jié)果:
總結(jié):
1)接口中的abstract抽象方法通過實例對象來調(diào)用;
2)接口中的default方法通過實例對象來調(diào)用;
3)接口中的靜態(tài)方法通過接口名.方法名()的方式來調(diào)用;
4)接口是不允許直接使用new的方式來獲取實例的,如果new可以使用匿名實現(xiàn)類的方式:new后面跟上一對花括號來實現(xiàn)接口中的抽象方法。(匿名實現(xiàn)類:顧名思義沒有名稱的實現(xiàn)類,優(yōu)點是不用再單獨聲明一個類;缺點是沒有名字,不能重復使用,只能使用一次。)
總結(jié)
以上是生活随笔為你收集整理的Jdk1.8新特性(一) 接口的default方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: insert返回主键 — mybatis
- 下一篇: Jdk1.8新特性(二)——lambda