JAVA 8 默认方法-Default Methods

时间:2023-03-08 15:39:19
JAVA 8 默认方法-Default Methods

什么是默认方法-Default Methods

简单的说,就是可以在接口中定义一个已实现方法,且该接口的实现类不需要实现该方法;

如下示例:

    interface GreetingService
{
void sayMessage(String message); //可以在接口中定义默认方法
default void sayHello(){
System.out.println("Hello");
}
} //实现类不需要实现接口中的默认方法
class GreetingServiceImpl implements GreetingService{
@Override
public void sayMessage(String message)
{ }
}

为什么要有默认方法

主要是为了方便扩展已有接口;如果没有默认方法,加入给JDK中的某个接口添加一个新的抽象方法,那么所有实现了该接口的类都得修改,影响将非常大。

使用默认方法,可以给已有接口添加新方法,而不用修改该接口的实现类。当然,接口中新添加的默认方法,所有实现类也会继承该方法。

举个例子,在Java 8的Iterable接口中,新增了一个默认方法forEach,也正因为forEach是默认方法,才不用修改所有Iterable接口的实现类。

Iterable接口新增的forEach方法如下(入参是一个函数式接口,因此支持Lambda表达式):

    default void forEach(Consumer<? super T> action) {
Objects.requireNonNull(action);
for (T t : this) {
action.accept(t);
}
}

因为Collection接口继承了Iterable接口,所以我们可以在集合类中使用forEach方法,如下,这里使用了方法引用(一种更加紧凑的Lambda表达式)

        List<String> list = new ArrayList<String>();
list.add("001");
list.add("002");
list.forEach(System.out::println);

可见,我们在未破坏Iterable接口实现类的前提下,给Iterable接口的所有实现类添加了一个新方法forEach,这在Java 8之前是不可能的。

重写Override默认方法

  • 如果子类没有重写父接口默认方法的话,会直接继承父接口默认方法的实现;
  • 如果子类重写父接口默认方法为普通方法,则与普通方法的重写类似;
  • 如果子类(接口或抽象类)重写父接口默认方法为抽象方法,那么所有子类的子类需要实现该方法;

关于默认方法调用冲突

因为一个类是可以实现多个接口的,如果多个接口定义了同样的默认方法,那么子类如何调用父类的默认方法呢?

具体调用流程如下:

1、首先,如果子类覆盖了父类的默认方法,那么什么也不用想,直接使用调用子类覆盖后的方法;

2、其次,优先选择调用更加具体的接口默认方法,什么意思呢,举个例子,如果A1接口继承A接口,那么A1接口相对A接口就更加具体,当C类实现了A1接口的时候,就优先调用A1接口的默认方法;

3、最后,如果C类同时实现A1接口和A2接口,且A1和A2有同名的默认方法,那么选择哪个接口的默认方法呢?答案是编译器报错,提示定义了重名的方法,快速修复方式是覆盖其中的一个即可;

关于这块内容,在网上看到一段有意思的代码,如下,知道为什么会报错吗?如果删除InterfaceB中的foo方法,是否还会报错?往InterfaceC中添加foo方法又会怎样?

aaarticlea/png;base64,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" alt="" />

参考资料

https://docs.oracle.com/javase/tutorial/java/IandI/defaultmethods.html

https://dzone.com/articles/interface-default-methods-java

http://howtodoinjava.com/java-8/default-methods-in-java-8/

http://ebnbin.com/2015/12/20/java-8-default-methods/