Sobes.tech
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 open vagy abstract.
  • 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.