Junior — Middle
Este posibil să creezi subclase ale unei data class în Kotlin?
sobes.tech AI
Răspuns de la AI
În Kotlin, data class-urile sunt implicit final, ceea ce înseamnă că nu pot fi moștenite. Acest lucru se face pentru a păstra semantica și funcționarea corectă a metodelor generate automat, cum ar fi equals(), hashCode() și copy().
Dacă încerci să creezi o subclasă a data class, compilatorul va genera o eroare. Cu toate acestea, dacă este absolut necesar, poți face clasa open, dar atunci nu poate fi o data class.
Exemplu care nu va compila:
data class User(val name: String)
class SpecialUser(val id: Int) : User("default") // Eroare: nu se poate moșteni de la data class
Prin urmare, nu este posibil să creezi subclase ale data class-urilor.