Junior — Middle
Ar galima nustatyti paveldėjimą tarp duomenų klasės ir kitos klasės?
sobes.tech AI
Atsakymas iš AI
Kotlin'e duomenų klasė (data class) gali paveldėti iš kitos klasės, jei ji nėra final (t. y., atvira paveldėjimui). Tačiau duomenų klasė automatiškai paveldi iš Any ir turi turėti bent vieną parametrą konstruktoriuje.
Svarbu:
- Duomenų klasė negali būti
openarbaabstract. - Paveldėjimas iš duomenų klasės yra įmanomas, tačiau pati duomenų klasė negali būti tėvinė klasė (t. y., negalima paveldėti iš
data class).
Pavyzdys:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Taip, paveldėjimas tarp duomenų klasės ir kitos klasės yra įmanomas, tačiau su apribojimais, ir dažniau naudojama kompozicija (objektų įterpimas) vietoje paveldėjimo duomenų klasėms.