最后几天试着和Kotlin一起弄清楚,已经阅读了文档并找到了一个例子。在article:
的底部interface A {
fun foo() { print("A") }
fun bar()
}
interface B {
fun foo() { print("B") }
fun bar() { print("bar") }
}
class C : A {
override fun bar() { print("bar") }
}
class D : A, B {
override fun foo() {
super<A>.foo()
super<B>.foo()
}
}
现在,如果我们从A派生出一个具体的类C,我们显然必须覆盖bar()并提供一个实现。如果我们从A和B派生D,我们不必覆盖bar(),因为我们只继承了它的一个实现。
我试过这样做,但IDE强调我必须覆盖A类中的bar()函数,因为D类继承了bar()的多个接口方法
答案 0 :(得分:0)
该文章似乎有错误。由于D
继承自A
和B
,两者都具有bar()
方法的接口,因此必须定义这两种实现。