java8接口为什么新增了默认方法和静态方法?
2024-04-09 20:20:02  阅读数 1201
  1. 新增默认方法原因
    假设我们存在一个很久之前写好的接口,后面因为业务原因需要修改接口。

    java8之前,在一个接口中添加一个抽象方法,那所有的接口实现类都需要去实现这个方法,否则会编译出错。就算某些实现类不需要这个方法,也需要实现一个空方法。如果该接口的实现类特别多,改动会非常大。

    接口实现默认方法就是为了解决这个问题,只要在一个接口中添加了默认方法,所有的实现类就自动继承,不需要改动任何实现类,也不会影响业务。

  2. 新增静态方法原因
    接口静态方法和默认方法类似,只是接口静态方法不可以被接口接口实现类重写。
    接口静态方法可以直接通过接口.静态方法名调用