【发布时间】:2021-01-29 08:00:42
【问题描述】:
我有以下类和接口:
class A() {
fun one() {...}
fun two() {...}
}
class B(): A, C {
fun tree() {...}
}
interface C {
fun one()
fun two()
fun tree()
}
B 类可以扩展 A 并实现接口 C。 问题是,在 Kotlin 中,作为 C 的实际实现者的 B 类没有前 2 个函数,因此没有为接口实现正确的函数。 有没有正确的方法来做这样的事情?
【问题讨论】:
-
您到底期待什么? A 类的
one和two的实现满足接口契约。如果要覆盖它们,则需要在 A 类中标记函数open。当然,A 类本身必须标记为打开才能编译上述代码。 -
@Tenfour04 我不想覆盖它们,我希望它们满足界面但事实并非如此。我收到
Class 'B' is not abstract and does not implement abstract member public abstract fun one()
标签: java kotlin inheritance interface