Sobes.tech
Junior — Middle

Miért van tiltva a öröklés a data class-ból Kotlinben?

sobes.tech MI

Válasz az MI-től

Kotlinban a data class öröklése tilos, mert a data class automatikusan generál olyan metódusokat, mint az equals(), hashCode(), toString(), valamint a copy() és destrukturálási komponensek. Az öröklés engedélyezése bizonytalanságokat és hibákat okozhat ezekben a metódusokban, mivel az alosztály megváltoztathatja az állapotot vagy a logikát, megsértve a data class-ban rögzített szerződést.

Ezért az öröklés tilalma biztosítja a data class integritását és előre jelezhetőségét.

Példa:

data class User(val name: String, val age: Int)

// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Fordítási hiba