2017-07-18 10 views
9

Stworzyłem działanie kotlin, ale nie mogę go rozszerzyć, otrzymuję komunikat "Ten typ jest ostateczny, więc nie może zostać odziedziczony po ". Jak usunąć aktywność kotlin z wersji ostatecznej, aby można ją było rozszerzyć.czynność kotlin nie może zostać przedłużona, Ten typ jest ostateczny, więc nie można go dziedziczyć

+0

Jeśli ones ostateczna, nie należy próbować go przedłużyć. To pokonałoby cel tego, że jest "ostateczny". Jakiej klasy starasz się przedłużyć? – Carcigenicate

Odpowiedz

4

Domyślnie aktywność kotlin jest ostateczna, więc nie możemy rozszerzyć klasy. Aby przezwyciężyć to, musimy uczynić czynność tak otwartą, aby można ją było rozszerzyć.

tak jak open class BaseCompatActivity : AppCompatActivity() { }

14

zgodnie z dokumentacją Kotlin, otwarty adnotacji na klasy jest przeciwieństwem Java finału. Pozwala innym dziedziczyć z tej klasy. Domyślnie wszystkie zajęcia w Kotlin są ostateczne.

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

Patrz: https://kotlinlang.org/docs/reference/classes.html

Powiązane problemy