首页 > 解决方案 > Kotlin / Java - 接口实现 + 继承

问题描述

我有以下类和接口:

class A() {
    fun one() {...}
    fun two() {...}
}

class B(): A, C {
    fun tree() {...}
}

interface C {
    fun one()
    fun two()
    fun tree()
}

正如您可以扩展 A 并实现接口 C 一样,B 类也可以实现接口 C。问题在于,在 Kotlin 中,作为 C 的实际实现者的 B 类没有前 2 个函数,因此没有为接口实现正确的函数。有没有正确的方法来做这样的事情?

标签: javakotlininheritanceinterface

解决方案


  1. 该类A需要标记open
  2. 类的超类A需要B初始化(即A()
  3. B.tree()方法需要override修饰符

除此之外,它应该工作......

open class A {
    fun one() {}
    fun two() {}
}

class B: A(), C {
    override fun tree() {}
}

interface C {
    fun one()
    fun two()
    fun tree()
}

推荐阅读