Sobes.tech
Junior — Middle

Este posibil să declarați un moștenitor într-o data class în Kotlin?

sobes.tech AI

Răspuns de la AI

În Kotlin, o data class nu poate fi moștenită implicit, deoarece sunt declarate automat ca finale. Acest lucru se face pentru a asigura funcționarea corectă a metodelor generate, cum ar fi equals(), hashCode() și copy().

Dacă încerci să declari o clasă care moștenește de la o data class, compilatorul va afișa o eroare.

Cu toate acestea, dacă este absolut necesar, poți face o data class deschisă adăugând modificatorul open, dar acest lucru nu este recomandat și nu este suportat direct, deoarece o data class nu poate fi open.

Exemplu care nu va compila:

data class User(val name: String)

class AdminUser(val adminLevel: Int) : User("Admin") // Eroare

Prin urmare, moștenirea de la data class în Kotlin este imposibilă.