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 祝福语驱散霉运的话简短