Junior — Middle
Je možné určiť dedičstvo medzi triedou dát a inou triedou?
sobes.tech AI
Odpoveď od AI
V Kotlinu môže data class dediť od inej triedy, ak táto nie je final (t.j. otvorená na dedenie). Avšak, data class automaticky dedí od Any a musí mať aspoň jeden parameter v konštruktore.
Dôležité:
Data classnemôže byťopenaleboabstract.- Dediť od
data classje možné, ale samotnádata classnemôže byť rodičovskou triedou (t.j. nemožno dediť oddata class).
Príklad:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Takto je možné dediť medzi data class a inou triedou, ale s obmedzeniami, a častejšie sa používa kompozícia (vloženie objektov) namiesto dedenia pre data class-y.