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