Java8

接口增加方法默认实现

问题:比方说早先的接口里面有两个方法,然后此接口让很多人都去使用了,突然有一天发现这个接口中方法不够,还需要添加一个方法去升级接口,但是这个时候,是不能直接将方法添加到此接口里面的,因为只要一添加,那么就会导致使用此接口的所有用户的代码报错,因为所有用户的代码都需要来实现此接口新添加的方法;这样肯定是不行的;
老的解决方式:通过设计模式,遵循开闭原则去设计,重新设计一个接口,然后继承有两个方法的接口,然后把最新的方法写到最新设计的接口里面,就实现了第三个方法了,所有用户的代码也不会报错;
新的解决方式:按老的方式就会设计很多接口了,当然不是很好,那么在 Java8 中我们可以直接在接口中定义一个 default 方法了,将最新的方法通过 default 定义到接口中,所有用户无需实现此方法,并且代码也不会报错。

典型应用:就是接口升级,需要添加新的接口,直接使用 default 定义,用户需要改动。即把公共的实现放到接口里面,如果用户想要有自定义实现,也可以覆盖重写此 default 方法。

接口增加静态方法

Java8&Java9&Java11新特性 - 图1