Sobes.tech
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.