Junior — Middle
Може ли да се одреди наслеђивање између класе података и друге класе?
sobes.tech АИ
Одговор од АИ
U Kotlinu, data class može nasleđivati drugu klasu ako ta klasa nije final (tj. otvorena za nasleđivanje). Međutim, data class automatski nasleđuje od Any i mora imati bar jedan parametar u konstruktoru.
Važno:
Data classne može bitiopeniliabstract.- Nasleđivanje od
data classje moguće, ali samadata classne može biti roditeljska klasa (tj. ne može se nasleđivati oddata class).
Primer:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Tako je moguće nasleđivanje između data class i druge klase, ali sa ograničenjima, i češće se koristi kompozicija (ugrađivanje objekata) umesto nasleđivanja za data class-ove.