Sobes.tech
Junior — Middle

Se poate determina moștenirea între o clasă de date și o altă clasă?

sobes.tech AI

Răspuns de la AI

În Kotlin, o clasă de date (data class) poate moșteni de la o altă clasă dacă aceasta nu este final (adică, deschisă pentru moștenire). Cu toate acestea, clasa de date moștenește automat de la Any și trebuie să aibă cel puțin un parametru în constructor.

Important:

  • Clasa de date nu poate fi open sau abstract.
  • Moștenirea de la o clasă de date este posibilă, dar clasa de date în sine nu poate fi părintele (adică, nu se poate moșteni de la o data class).

Exemplu:

open class Person(val name: String)

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

Astfel, moștenirea între o data class și o altă clasă este posibilă, dar cu restricții, și se preferă de obicei compoziția (includerea obiectelor) în locul moștenirii pentru clasele de date.