一、概念
1. 接口提供一個默認實現的方法,並且不強制實現類重寫此方法
2. 默認方法使用default關鍵字來修飾
二、引入背景
1. 當一個接口添加新方法時,需要所有的實現類都重寫新方法,影響到了已有的實現類,可能導致應用崩潰
2. 默認方法可以不強制重寫,也不會影響到已有的實現類
3. 例如Iterable接口的foreach方法,就是一個默認方法,參數是一個Consumer對象
三、使用
1. 當一個實現類實現了多個接口,多個接口里都有相同的默認方法時,實現類必須重寫該默認方法,否則編譯錯誤
a. 實現類自己重寫邏輯
b. 實現類使用super關鍵字指定使用哪個接口的默認方法
2. 接口靜態方法
接口中支持定義靜態方法,將默認方法的default關鍵字換成static即可
3. 繼承類可以直接使用接口中的static方法,也可以創建對象后使用接口中的default方法
參考:
https://www.jianshu.com/p/a58b6f5b0c54
https://www.jb51.net/article/137630.htm