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