kotlin Activity不能扩展,这种类型是final,所以它不能被继承

Log*_*ogo 47 kotlin kotlin-android-extensions

我创建了一个kotlin Activity,但是我无法扩展活动,我收到的消息是" 这种类型是最终的,所以它不能继承 ".如何从最终删除kotlin活动,因此可以扩展.

小智 61

根据Kotlin文档,类的开放注释与Java的最终结果相反.它允许其他人继承这个类.默认情况下,Kotlin中的所有类都是最终的.

open class Base {
    open fun v() {}
    fun nv() {}
}

class Derived() : Base() {
    override fun v() {}
}
Run Code Online (Sandbox Code Playgroud)

请参阅:https://kotlinlang.org/docs/reference/classes.html

  • Kotlin 中默认将类设为 Final 的原因是什么? (2认同)
  • @DhruvamSharma 这样做的唯一原因是惹恼程序员。绝对没有其他合理的理由。互联网上有很多讨论,大多数人认为这是一个愚蠢的决定。 (2认同)

Log*_*ogo 19

默认情况下,Kotlin活动是最终的,因此我们无法扩展该类.为了克服这一点,我们必须进行活动,open以便它可以扩展.

就像 open class BaseCompatActivity : AppCompatActivity() { }


Waq*_*Haq 17

在Kotlin中,默认情况下类是final,这就是类不可扩展的原因.

类的开放注释与Java的最终结果相反:它允许其他人继承此类.默认情况下,Kotlin中的所有类都是最终的. Kotlin - 继承

open class Base(p: Int)

class Derived(p: Int) : Base(p)
Run Code Online (Sandbox Code Playgroud)