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