在java 8以前的
版本,我们对interface的认识通常是大概是以下这个样子
1.所有方法均为 虚方法
2.所有方法默认 public
3.一个实装类如果实现一个
借口必须实现这个借口所有的虚方法。
好了,现在问题来了,如果一个interface因为某些需要要增加一个方法,
那么,之前实现这个interface的所有实装类都需要进行变更,增加这个方法的定义。
这就为维护造成了很大的麻烦。
在java8增加了一个新的语言特性 --- interface的方法可以定义为默认方法(default methods)甚至于
静态方法。
class="java">
public interface sample {
default void test() {
System.out.println("just a sample");
}
static void testUtil() {
System.out.println("just a sample for util method");
}
}
这样,实现了该interface的实装类就可以不必实装(一部分已经默认实装)所有的方法了。
于是,当interface发生变更的时候,保证了
接口与之前实装好的代码的兼容性。