Junior — Middle
Vai ir iespējams noteikt mantošanu starp datu klasi un citu klasi?
sobes.tech AI
Atbilde no AI
Kotlinā datu klase (data class) var manto no citas klases, ja tā nav final (t.i., atvērta mantošanai). Tomēr datu klase automātiski manto no Any un tai ir jābūt vismaz vienam parametrā konstruktorā.
Svarīgi:
- Datu klase nevar būt
openvaiabstract. - Mantošana no datu klases ir iespējama, bet pati datu klase nevar būt vecāklase (t.i., no
data classnevar manto).
Piemērs:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Tādējādi, mantošana starp datu klasi un citu klasi ir iespējama, bet ar ierobežojumiem, un biežāk tiek izmantota kompozīcija (objektu iekļaušana) nevis mantošana datu klasēm.