Sobes.tech
Junior — Middle

Kas on võimalik määratleda pärilust andmeklass ja teise klassi vahel?

sobes.tech AI

Vastus AI-lt

Kotlinis võib andmeklass (data class) pärida teiselt klassilt, kui see ei ole final (st. avatud pärimiseks). Kuid andmeklass pärib automaatselt Any-lt ja peab omama vähemalt ühte parameetrit konstruktoris.

Oluline:

  • Andmeklass ei või olla open või abstract.
  • Pärimine andmeklassist on võimalik, kuid ise andmeklass ei saa olla vanemklass (st. ei saa pärida data class-ist).

Näide:

open class Person(val name: String)

data class Employee(val id: Int, val person: Person) : Person(person.name)

Seega on võimalik pärida andmeklass ja teist klassi vahel, kuid piirangutega, ning sageli kasutatakse kompositsiooni (objektide sisestamist) pärimise asemel andmeklasside puhul.