Sobes.tech
Junior — Middle

Могу ли да се креирају подкласе у data class у Kotlin-у?

sobes.tech АИ

Одговор од АИ

U Kotlinu, data class su podrazumevano final, što znači da ih ne može naslediti. Ovo je urađeno da bi se sačuvala semantika i ispravno funkcionisanje automatski generisanih metoda kao što su equals(), hashCode() i copy().

Ako pokušate da napravite podklasu od data class, kompajler će prikazati grešku. Međutim, ako je to zaista potrebno, možete napraviti klasu open, ali tada ona ne može biti data class.

Primer koji se neće kompajlirati:

data class User(val name: String)

class SpecialUser(val id: Int) : User("default") // Greška: ne može se naslediti od data class

Dakle, nije moguće praviti podklase od data class.