Kotlinアクティビティを作成しましたが、アクティビティを拡張できません。「このタイプは最終的なため、継承できません」というメッセージが表示されます。 kotlinアクティビティをfinalから削除して、拡張できるようにする方法。
Kotlinのドキュメントによると、クラスのオープンアノテーションはJavaのfinalの反対です。他の人がこのクラスから継承できるようにします。デフォルトでは、Kotlinのすべてのクラスはfinalです。
open class Base {
open fun v() {}
fun nv() {}
}
class Derived() : Base() {
override fun v() {}
}
デフォルトでは、Kotlinアクティビティはfinalであるため、クラスを拡張できません。それを克服するには、アクティビティをopen
にして、拡張可能にする必要があります。
open class BaseCompatActivity : AppCompatActivity() { }
のように
Kotlinでは、クラスはデフォルトでfinalであるため、クラスは拡張できません。
クラスのオープンアノテーションは、Javaのfinalの反対です。つまり、他の人がこのクラスから継承できるようにします。デフォルトでは、Kotlinのすべてのクラスはfinalです。 Kotlin-継承
open class Base(p: Int)
class Derived(p: Int) : Base(p)