Junior — Middle
Lehetséges örököst deklarálni egy data class-ban Kotlinban?
sobes.tech MI
Válasz az MI-től
Kotlinban alapértelmezés szerint egy data class nem örökölhető, mivel automatikusan finalként van deklarálva. Ez biztosítja a generált metódusok, például az equals(), hashCode() és copy() helyes működését.
Ha megpróbálsz egy olyan osztályt deklarálni, amely örököl egy data class-tól, a fordító hibát fog jelezni.
Azonban, ha valóban szükséges, meg lehet nyitni egy data class-t az open módosító hozzáadásával, de ezt nem ajánlott és nem támogatott közvetlenül, mivel egy data class nem lehet open.
Példa, ami nem fordul le:
data class User(val name: String)
class AdminUser(val adminLevel: Int) : User("Admin") // Hiba
Így, a Kotlinban a data class öröklése lehetetlen.