Java8 默认方法
1、为什么有这个特性
- 解决接口的修改与现有的实现不兼容问题,易于接口功能扩展
2、什么是默认方法
- 通过使用default关键字向接口中添加非抽象方法实现,此方法为默认方法
3、多继承冲突解决方案
- Java8提供了三条规则
- 类中的方法优先级最高,类或父类中声明的方法的优先级高于任何声明为默认方法的优先级(父类即继承类)
- 子接口的优先级更高:方法签名相同时,优先选择拥有最具实现的默认方法的接口,例如B继承了A,那么B就比A更加具体(c类实现A、B两个接口,则优先使用子接口B)
- 继承了多个接口的类必须通过显示覆盖和调用期望的方法,显示地选择使用哪一个默认方法的实现(c类实现A、B两个接口,则c需要显示调用A.super.xx方法或者自己覆盖xx方法)