java8新特性(一):default方法的介绍和使用
我们都知道在Java的接口中只能定义方法,而不能对方法进行具体实现。其方法的实现必须要到实现了该接口的非抽象子类中实现。
而Java8的一个重要的特性就是引入了函数式方法,其中Collection接口中增加了新的stream()方法。但是因为接口导致的这个语法限制,使得要实现Collection接口的stream()方法全覆盖变得异常困难。难道所有继承了Collection接口的类中都要重写stream()方法的实现吗?显然不是的。机智的Java开发工程师们在Java8中引入了这样一个新的概念——default方法。
简单的说,Java接口拥有了非抽象方法了!default方法是有点就是可以往接口中新增加方法,而不破坏现有的实现架构。
应用举例
首先,我们定义一个接口,里面的方法用default修饰
public interface IOrderService {
default String getOrderDetail(){
return "asd";
}
}
定义一个实现类,实现这个接口。但是因为原接口IOrderService中并没有普通的要实现的方法,所以实现类中并没有需要Override的方法
public class OrderServiceImpl extends OrderInfo implements IOrderService{
private void getStr(){
String test = getOrderDetail();
System.out.println("test="+test);
}
public static void main(String[] args) {
OrderServiceImpl orderService = new OrderServiceImpl();
orderService.getStr();
}
}
可以看到,定义一个普通的内部方法getStr(),在里面就可以直接调用接口中的那个default方法getOrderDetail()。然后我们用main方法跑一下,进行验证:
结果就是成功输出了default方法中返回的字符串
test=asd
上一篇:“三门问题”的逻辑分析与验证
下一篇:判断三点共线,一行代码搞定!