Sobes.tech
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.