Junior — Middle
Kan er een erfenis worden vastgesteld tussen een gegevensklasse en een andere klasse?
sobes.tech AI
Antwoord van AI
In Kotlin kan een data class (data class) erven van een andere klasse als deze niet final is (dus open voor erfelijkheid). Echter, de data class erft automatisch van Any en moet minstens één parameter in de constructor hebben.
Belangrijk:
- Een data class kan niet
openofabstractzijn. - Erfenis van een data class is mogelijk, maar de data class zelf kan niet de ouderklasse zijn (dus er kan niet van een data class worden geërfd).
Voorbeeld:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Zo is er mogelijkheid tot erfenis tussen een data class en een andere klasse, maar met beperkingen, en wordt compositie (objecten insluiten) vaker gebruikt dan erfenis voor data classes.