无法扩展Kotlin活动。此类型是最终类型,因此无法继承
我已创建Kotlin活动,但无法扩展该活动。我收到以下消息:无法扩展Kotlin活动。此类型是最终类型,因此无法继承,kotlin,kotlin-android-extensions,Kotlin,Kotlin Android Extensions,我已创建Kotlin活动,但无法扩展该活动。我收到以下消息:此类型是最终类型,因此无法从继承。如何从Kotlin的活动中删除final,以便对其进行扩展?默认情况下,Kotlin活动是final,因此我们无法扩展该类。 要克服这一点,我们必须使活动打开,以便它可以扩展 正如Kotlin文档中的打开类BaseCompatActivity:AppCompatActivity(){}一样,类上的打开注释与Java的最终注释相反。它允许其他人从该类继承。默认情况下,Kotlin中的所有类都是最终类 op
此类型是最终类型,因此无法从
继承。如何从Kotlin的活动中删除final
,以便对其进行扩展?默认情况下,Kotlin活动是final,因此我们无法扩展该类。
要克服这一点,我们必须使活动打开
,以便它可以扩展
正如Kotlin文档中的
打开类BaseCompatActivity:AppCompatActivity(){}
一样,类上的打开注释与Java的最终注释相反。它允许其他人从该类继承。默认情况下,Kotlin中的所有类都是最终类
open class Base {
open fun v() {}
fun nv() {}
}
class Derived() : Base() {
override fun v() {}
}
请参阅:在Kotlin中,类默认为最终类,这就是类不可扩展的原因 类上的open注释与Java的final相反:它允许其他人从这个类继承。默认情况下,Kotlin中的所有类都是最终类。
如果是最后一个,你不应该试图扩展它。这将破坏它作为
最终版本的目的。你想扩展什么类?在Kotlin中使类默认为最终类的原因是什么?@DhruvamSharma这样做的唯一原因是为了激怒程序员。绝对没有其他合理的理由。网上有很多讨论,大多数人认为这是一个愚蠢的决定。哈哈,非常感谢。我能推断出答案。希望你能多描述一点,以加速理解发生了什么。我只需要打开我的函数,错误就会消失。我不理解关于课程是否为最终课程的讨论。@DhruvamSharma我不知道,但出于性能原因,我会猜测。虚拟函数或开放函数的性能开销要大得多,因为它必须在表中查找
open class Base(p: Int)
class Derived(p: Int) : Base(p)