在Java8的新特性中有一個新特性爲接口默認方法,該新特性容許咱們在接口中添加一個非抽象的方法實現,而這樣作的方法只須要使用關鍵字default修飾該默認實現方法便可。該特性又叫擴展方法。code
直接上代碼:
使用Java8新特性定義一個擴展方法:orm
public interface Formula { double calculate(int a); default double sqrt(int a){ return Math.sqrt(a); } }
public class Bootstrap { public static void main(String[] args){ Formula formula = new Formula(){ public double calculate(int a){ return sqrt(a * 100); } // 本來應該實現的sqrt方法因爲新特性的出現,變得再也不那麼冗餘了 }; System.out.println(formula.calculate(100)); System.out.println(formula.sqrt(16)); } }
經過該特性,咱們將可以很方便的實現接口默認實現類。這個特性在編譯器實現的角度來講更接近於Scala的trait。接口