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ă.