Sobes.tech
Junior — Middle

È possibile determinare l'ereditarietà tra una classe di dati e un'altra classe?

sobes.tech AI

Risposta dell'AI

In Kotlin, una classe di dati (data class) può ereditare da un'altra classe se questa non è final (cioè, aperta all'ereditarietà). Tuttavia, la classe di dati eredita automaticamente da Any e deve avere almeno un parametro nel costruttore.

Importante:

  • La classe di dati non può essere open o abstract.
  • È possibile ereditare da una classe di dati, ma la classe di dati stessa non può essere il classe genitore (cioè, non si può ereditare da una data class).

Esempio:

open class Person(val name: String)

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

Pertanto, l'ereditarietà tra una data class e un'altra classe è possibile, ma con restrizioni, e si preferisce spesso usare la composizione (inclusione di oggetti) invece dell'ereditarietà per le classi di dati.