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
openoabstract. - È 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.