JAVA8 十大新特性详解
转自https://blog.csdn.net/jiaotuwoaini/article/details/51554643#t0 --接口中的方法都是抽象的吗? --NO 场景:今天在翻看jdk的java.util.Comparator接口的时候发现了下面这段代码 1 interface Formula { 2 double calculate( int a); 3 default double sqrt( int a) { 4 return Math.sqrt(a); 5 } 6 } 我擦,什么情况? 现在带你领略下Java8的新特性: 一、接口的默认方法 Java 8允许我们给接口添加一个非抽象的方法实现,只需要使用 default关键字即可,这个特征又叫做扩展方法,示例如下: 1 interface Formula { 2 double calculate( int a); 3 default double sqrt( int a) { 4 return Math.sqrt(a); 5 } 6 } Formula接口在拥有calculate方法之外同时还定义了sqrt方法,实现了Formula接口的子类只需要实现一个calculate方法,默认方法sqrt将在子类上可以直接使用。 1 Formula formula = new Formula() { 2 @Override