JAVA8 新特性 边学边记(三) Default Methods

Default Methods enable you to add new functionality to the interfaces of your libraries and ensure binary compatibility with code written for older versions of those interfaces. They are interface methods that have an implementation and the default keyword at the beginning of the method signature. In addition, you can define static methods in interfaces.
Default Methods使得你可以为interface增加方法,并保证基于变更前所写的代码的兼容性(binary compatibility)。他们是一些已经实装的方法,并且在方法签名(method signature)的最前面有default关键字做修饰。另外,你还可以在interface中定义静态方法。



在java 8以前的版本,我们对interface的认识通常是大概是以下这个样子
1.所有方法均为 虚方法
2.所有方法默认 public
3.一个实装类如果实现一个interface必须实现这个interface所有的虚方法。

好了,现在问题来了,如果一个interface因为某些需要要增加一个方法,
那么,之前实现这个interface的所有实装类都需要进行变更,增加这个方法的定义。
这就为维护造成了很大的麻烦。


在java8增加了一个新的语言特性 --- interface里面的方法可以定义为实装方法,包括默认方法(default methods)和于静态方法。

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发生变更的时候,保证了接口与之前实装好的代码的兼容性。

你可能感兴趣的:(java)