我创建了一个 Kotlin Activity,但无法扩展该 Activity。我收到这条消息:
This type is final, so it cannot be inherited from
。如何从 Kotlin 的 Activity 中删除 final
,以便扩展它?
根据 Kotlin 文档,类上的开放注释与 Java 的final 相反。它允许其他人继承这个类。默认情况下,Kotlin 中的所有类都是最终类。
open class Base {
open fun v() {}
fun nv() {}
}
class Derived() : Base() {
override fun v() {}
}
默认情况下,Kotlin 活动是最终的,因此我们无法扩展该类。 为了克服这个问题,我们必须让活动
open
这样,它就可以扩展。
就像
open class BaseCompatActivity : AppCompatActivity() { }
在 Kotlin 中,类默认是 Final 的,这就是类不可扩展的原因。
类上的open注解与Java的final相反:它允许其他类继承这个类。默认情况下,Kotlin 中的所有类都是最终类。 Kotlin - 继承
open class Base(p: Int)
class Derived(p: Int) : Base(p)
class Base
简单添加 open 为超级/父类:
open class Base