默認方法
在jdk8中新增了默認方法這個概念。首先這個概念是針對接口而言的,也就是說可以在接口裏面寫具體的方法實現(以前只可以寫抽象方法),只需要在方法聲明前加上default關鍵字即可。
代碼如下:
public interface Vehicle {
default void print(){
System.out.println("我是一輛車!");
}
}
靜態默認方法
加上static關鍵即可
public interface Vehicle {
default void print(){
System.out.println("我是一輛車!");
}
// 靜態方法
static void blowHorn(){
System.out.println("按喇叭!!!");
}
}
爲什麼要默認方法
首先,之前的接口是個雙刃劍,好處是面向抽象而不是面向具體編程,缺陷是,當需要修改接口時候,需要修改全部實現該接口的類,目前的 java 8 之前的集合框架沒有 foreach 方法,通常能想到的解決辦法是在JDK裏給相關的接口添加新的方法及實現。然而,對於已經發布的版本,是沒法在給接口添加新方法的同時不影響已有的實現。所以引進的默認方法。他們的目的是爲了解決接口的修改與現有的實現不兼容的問題。