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