JAVA8-使用默认方法平滑的演进接口

  • 时间:
  • 来源:互联网
  • 文章标签:

默认方法的使用可以参考本篇博客【接口中的方法真的不能有方法体?】

JAVA8之前,只要是接口的子类,那子类就一定要实现接口中的所有方法,如果这个接口被作为一个公共接口来使,开发会根据自己的需求写不同的子类来实现接口中的方法,这时候,如果接口又新增了一个方法,那么所有的子类也同样需要重写这个方法,不然就会编译报错。

JAVA8之后,有了默认方法这个概念,接口也可以有自己默认的方法实现,子类无需重写接口的默认方法,这样接口的修改就不会引起大范围的子类变动,实现了接口的平滑演进。

有一个接口类DefaultInterface,如下:

public interface DefaultInterface {
    void method1();

    /**
     * 默认方法
     */
    default void methds() {
        System.out.println("222");
    }
}

该接口类有一个子类A,如下:

public class A implements DefaultInterface {
    @Override
    public void method1() {
        System.out.println("111");
    }
}

总结

可以发现DefaultInterface使用了默认方法后,作为子类的A不重写该方法,也不会编译报错,这样子把接口的改动对子类造成的影响降到了最低。实现了平滑演进接口的目的。

本文链接http://www.taodudu.cc/news/show-82904.html