bar*_*own 3 inheritance kotlin
我试图继承以下类型,但编译器说它是最终的.
class Dice(private var side : Int)
{
constructor(D : DiceTypesK) : this(D.value) {}
}
class ExplodedDice(private val D : DiceTypesK) : Dice(D)
// ^^^^ this class is final and
// can not be inherited from
Run Code Online (Sandbox Code Playgroud)
为什么我的类型是最终的,因为我不打算这样做?
在Kotlin中,与Java和C#不同,默认情况下所有类都是final,除非open
明确标记.这是文档中的内容:
open
类的注释与Java相反final
:它允许其他人继承此类.默认情况下,Kotlin中的所有类都是final,对应于Effective Java,第17项:继承的设计和文档,或者禁止它.
解决方案就是将您的课程标记为open class Dice
.
另外,请注意类继承的限制data
:它们既不能open
也不能扩展另一个类.
归档时间: |
|
查看次数: |
127 次 |
最近记录: |