Junior — Middle
Is het mogelijk om subclasses te maken van data class in Kotlin?
sobes.tech AI
Antwoord van AI
In Kotlin zijn data class standaard final, wat betekent dat ze niet kunnen worden geërfd. Dit is gedaan om de semantiek en de correcte werking van automatisch gegenereerde methoden zoals equals(), hashCode() en copy() te behouden.
Als je probeert een subklasse van data class te maken, geeft de compiler een fout. Maar als het echt nodig is, kun je de klasse open maken, maar dan kan het geen data class zijn.
Voorbeeld dat niet compileert:
data class User(val name: String)
class SpecialUser(val id: Int) : User("default") // Fout: kan niet erven van data class
Dus, het is niet mogelijk om subklassen van data class te maken.