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

时间:2017-07-18 13:51:59

标签: kotlin kotlin-android-extensions

我创建了一个kotlin活动,但是我无法扩展活动,我收到消息为" 此类型是最终的,因此无法继承&#34 ;。如何从最终中删除kotlin活动,因此可以延长。

3 个答案:

答案 0 :(得分:48)

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

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

class Derived() : Base() {
    override fun v() {}
}

参考:https://kotlinlang.org/docs/reference/classes.html

答案 1 :(得分:13)

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

open class BaseCompatActivity : AppCompatActivity() { }

类似

答案 2 :(得分:9)

在Kotlin中,默认情况下这些类是最终的,这就是为什么类不可扩展。

  

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

open class Base(p: Int)

class Derived(p: Int) : Base(p)