kotlin Активность не может быть расширена, этот тип является окончательным, поэтому он не может быть унаследован

Я создал kotlin Activity, но я не могу продлить действие, я получаю сообщение как " Этот тип является окончательным, поэтому он не может быть унаследован от ". Как удалить активность котлина из финала, чтобы его можно было продлить.

Ответы

Ответ 1

Согласно документации Kotlin, открытая аннотация в классе противоположна Java final. Это позволяет другим наследовать от этого класса. По умолчанию все классы в Котлине являются окончательными.

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

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

См. Https://kotlinlang.org/docs/reference/classes.html.

Ответ 2

По умолчанию активность Kotlin является окончательной, поэтому мы не можем расширить класс. Чтобы преодолеть это, мы должны сделать деятельность open чтобы ее можно было продлить.

как open class BaseCompatActivity: AppCompatActivity() { }

Ответ 3

В Kotlin классы по умолчанию окончательны, поэтому классы не расширяемы.

Открытая аннотация в классе противоположна финалу Java: она позволяет другим наследовать от этого класса. По умолчанию все классы в Котлине являются окончательными. Котлин - Наследование

open class Base(p: Int)

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