Sobes.tech
Junior — Middle

È possibile dichiarare un erede in una data class in Kotlin?

sobes.tech AI

Risposta dell'AI

In Kotlin, una data class di default non può essere ereditata, poiché vengono dichiarate automaticamente come final. Questo viene fatto per garantire il corretto funzionamento dei metodi generati, come equals(), hashCode() e copy().

Se si tenta di dichiarare una classe che eredita da una data class, il compilatore genererà un errore.

Tuttavia, se è davvero necessario, si può rendere una data class open aggiungendo il modificatore open, ma questo non è raccomandato e non è supportato direttamente, poiché una data class non può essere open.

Esempio che non compilerà:

data class User(val name: String)

class AdminUser(val adminLevel: Int) : User("Admin") // Errore

Pertanto, l'ereditarietà da data class in Kotlin è impossibile.