Junior — Middle
È possibile creare sottoclassi in data class in Kotlin?
sobes.tech AI
Risposta dell'AI
In Kotlin, le data class sono per default final, cioè non possono essere ereditate. Questo è fatto per preservare la semantica e il corretto funzionamento dei metodi generati automaticamente, come equals(), hashCode() e copy().
Se si tenta di creare una sottoclasse di data class, il compilatore genererà un errore. Tuttavia, se è assolutamente necessario, si può rendere la classe open, ma in tal caso non può essere una data class.
Esempio che non compilerà:
data class User(val name: String)
class SpecialUser(val id: Int) : User("default") // Errore: impossibile ereditare da data class
Pertanto, non è possibile creare sottoclassi di data class.