Junior — Middle
Is het mogelijk om een erfgenaam te declareren in een data class in Kotlin?
sobes.tech AI
Antwoord van AI
In Kotlin kan een data class standaard niet worden geërfd, omdat ze automatisch als final worden gedeclareerd. Dit is gedaan om de correcte werking van gegenereerde methoden zoals equals(), hashCode() en copy() te garanderen.
Als je probeert een klasse te declareren die van een data class erft, geeft de compiler een fout.
Echter, als het echt nodig is, kun je een data class open maken door de modifier open toe te voegen, maar dit wordt niet aanbevolen en wordt niet direct ondersteund, omdat een data class niet open kan zijn.
Voorbeeld dat niet compileert:
data class User(val name: String)
class AdminUser(val adminLevel: Int) : User("Admin") // Fout
Dus, overerving van een data class in Kotlin is onmogelijk.