为什么java8要在接口中引入默认方法

275 阅读1分钟

默认方法:接口中可以有方法体的方法,而且不需要实现类去实现此方法。关键字default。

设想一种场景,如果你想在你原有的接口中新增一个方法,那你就得将所有实现了这个接口的类中新增对这个方法的实现,不然会报错。如果实现了这个接口的类非常多,那么维护起来是很恐怖的,所以java8在接口中引入了默认方法。

默认方法的使用有以下规则

  • 实现类可以直接使用父接口中定义的default方法

  • 接口可以重写父接口中定义的default方法

  • 实现类可以重写父接口中定义的default方法

  • 当父类与父接口都存在default方法时, 使用父类中重写的default方法