java8新特性之默認方法

默認方法

在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裏給相關的接口添加新的方法及實現。然而,對於已經發布的版本,是沒法在給接口添加新方法的同時不影響已有的實現。所以引進的默認方法。他們的目的是爲了解決接口的修改與現有的實現不兼容的問題。


參考鏈接

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章