Sobes.tech
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 open arba abstract.
  • 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.