java - 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 个函数,因此没有为接口实现正确的函数。有没有正确的方法来做这样的事情?
解决方案
- 该类
A
需要标记open
。 - 类的超类
A
需要B
初始化(即A()
) - 该
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()
}
推荐阅读
- okta - 奥克塔。将组分配给应用程序时如何禁用组属性表单?
- python - 如何从工作计算机安装 Plotly(使用 Anacando 或 PIP)
- javascript - d3 js刷和缩放不适用于突出显示的矩形
- asp.net-core - 如何覆盖 ASP.NET Core 中的 tilda (~) 分辨率?
- java - 解析 JSON 时出错 (MismatchedInputException)
- android - Zxing 条码库 Android Studio
- javascript - 在我检查元素到该特定标签之前,不会在 iframe 中获取 DOM 元素
- r - PowerBI R 脚本运行时错误,从 rlang 0.3.0 开始,不推荐使用 rlang 命名空间为 UQ() 加前缀
- java - 在关闭期间,骆驼报告没有可用的消费者,但后来它关闭了同一个消费者,
- javascript - 除带有 Javascript/jQuery 的按钮外,整个表格行均可点击