默认方法

java 8 允许你在接口中添加非抽象方法 , 这些方法必须定义为 default 方法 , java 8 引入默认方法是为了使用 lambda 函数表达式 .

default 方法使您能够向库的接口添加新功能,并确保与旧版本的这些接口编写的代码的二进制兼容性 。

用一个例子去理解:

  1. public interface Moveable {
  2. default void move(){
  3. System.out.println("I am moving");
  4. }
  5. }

Moveable 接口定义了一个 move() 方法并且提供了默认的实现 . 如果任意一个 class 实现这个
接口都没有必要去实现这个 move() 方法,能够直接使用 instance.move() 进行调用 .

eg:

  1. public class Animal implements Moveable{
  2. public static void main(String[] args){
  3. Animal tiger = new Animal();
  4. tiger.move();
  5. }
  6. }
  7. Output: I am moving

如果该 class 想要自定义一个 move() 也能提供自定义的实现去覆写这个 move 方法 .

原文 :https://howtodoinjava.com/java-8-tutorial/

read more : https://howtodoinjava.com/java-8/java-8-tutorial-internal-vs-external-iteration/