在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。接口