我创建了一个 Kotlin 活动,但我无法扩展该活动。我收到这条消息:This type is final, so it cannot be inherited from
。如何final
从 Kotlin 的活动中删除,以便可以扩展?
问问题
23412 次
3 回答
78
根据 Kotlin 文档,类上的开放注释与 Java 的最终注释相反。它允许其他人从这个类继承。默认情况下,Kotlin 中的所有类都是 final 的。
open class Base {
open fun v() {}
fun nv() {}
}
class Derived() : Base() {
override fun v() {}
}
于 2017-08-16T11:40:33.063 回答
22
在 Kotlin 中,默认情况下类是最终的,这就是类不可扩展的原因。
类上的 open 注解与 Java 的 final 相反:它允许其他人从这个类继承。默认情况下,Kotlin 中的所有类都是 final 的。 Kotlin - 继承
open class Base(p: Int)
class Derived(p: Int) : Base(p)
于 2018-04-17T07:32:24.510 回答
22
默认情况下,Kotlin 活动是最终的,因此我们不能扩展该类。为了克服这个问题,我们必须使活动open
可以扩展。
就像open class BaseCompatActivity : AppCompatActivity() { }
于 2017-07-20T08:32:59.943 回答