Junior — Middle
Meghatározható-e az öröklődés egy adat osztály és egy másik osztály között?
sobes.tech MI
Válasz az MI-től
Kotlinban egy adat osztály (data class) örökölhet más osztálytól, ha az nem final (azaz, nyitott az öröklésre). Azonban az adat osztály automatikusan örököl az Any-től, és legalább egy paramétert kell tartalmaznia a konstruktorában.
Fontos:
- Az adat osztály nem lehet
openvagyabstract. - Az adat osztályból való öröklés lehetséges, de az adat osztály maga nem lehet szülőosztály (azaz, nem lehet örökölni egy data class-tól).
Példa:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Így az öröklés adat osztály és más osztály között lehetséges, de korlátozásokkal, és általában az összetételt (objektumok beágyazását) részesítik előnyben az öröklés helyett adat osztályok esetében.