Kotlin 使用默认实现实现多个接口时发生冲突
示例
当实现多个具有相同名称的方法(包括默认实现)的接口时,对于编译器来说应该使用哪个实现是不明确的。在发生冲突的情况下,开发人员必须重写冲突的方法并提供自定义实现。该实现可以选择委托或不委托给默认实现。
interface FirstTrait {
fun foo() { print("first") }
fun bar()
}
interface SecondTrait {
fun foo() { print("second") }
fun bar() { print("bar") }
}
class ClassWithConflict : FirstTrait, SecondTrait {
override fun foo() {
super<FirstTrait>.foo() //委托给FirstTrait的默认实现
super<SecondTrait>.foo() //委托给SecondTrait的默认实现
}
//功能bar()仅在一个接口中具有默认实现,因此可以。
}
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短