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 简短祝福语毛笔字