在Java8以前,我们知道接口中是不能够有方法的具体实现的,但是Java8中则允许有接口的默认实现。

我们先来个例子感受一下:

注意默认方法的关键字是default。接下来我们写个实现类测试一下:

这时候没有实现接口的方法编译器也不会报错。

从上图可以看到,我们能直接使用接口中的默认方法。

除此之外,接口中还允许有静态方法:


这时候可以直接使用接口名.方法名去调用


接下来说一个需要注意的点:

1. 类优先原则