遗产在Kotlin
试图找出Kotlin最后的日子,阅读了文档,并找到一个例子。 在文章的底部:
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()的多个接口方法,
更新: Kotlin问题跟踪器。
看来这篇文章有一个错误。 因为D
继承自A
和B
,两个接口都有bar()
方法,所以这两个实现都必须定义。