Kotlin 接口方法冲突解决策略

在 Kotlin 中,当一个类继承自多个接口,且这些接口存在签名相同的方法时,便会出现方法冲突。为解决此问题,子类需要重写该方法,并明确指定调用哪个父接口的方法实现。

例如,假设类 D 同时继承了接口 BC,而这两个接口都定义了方法 x()。此时,D 需要重写 x() 方法,并在方法体内使用 <接口名>.super.<方法名>() 的语法来指明调用哪个接口的 x() 方法。

interface B {
    fun x(): Int = 1
}

interface C {
    fun x(): Int = 0
}

class D : B, C {
    override fun x(): Int {
        return super.x() // 调用接口 B 的 x() 方法
    }
}

在上述代码中,Dx() 方法调用了接口 Bx() 方法。开发者可以根据实际需求选择调用哪个接口的方法实现,从而解决方法冲突问题。

pdf 文件大小:64.09KB