如果一个类使用相同的函数签名从多个地方(比如另一个类或接口)继承了方法,那么通过三条规则可以进行判断。
(1) 类中的方法优先级最高。类或父类中声明的方法的优先级高于任何声明为默认方法的优先级。
(2) 如果无法依据第一条进行判断,那么子接口的优先级更高:函数签名相同时,优先选择拥有最具体实现的默认方法的接口,如果B 继承了A,那么B 就比A 更加具体。
(3) 最后,如果还是无法判断,那么继承了多个接口的类必须通过显式覆盖和调用期望的方法,显式地选择使用哪一个默认方法的实现。
接口默认方法与继承中同时出现相同的函数签名
于 2023-03-10 15:43:51 首次发布
当一个类从类或接口继承了相同函数签名的方法时,优先级规则如下:(1)类的方法优先于接口的默认方法;(2)如果接口间有继承,更具体的接口方法优先;(3)如仍有冲突,需在类中显式选择默认方法实现。

2921

被折叠的 条评论
为什么被折叠?



