Sobes.tech
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 open vai abstract.
  • Mantošana no datu klases ir iespējama, bet pati datu klase nevar būt vecāklase (t.i., no data class nevar 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.