Junior — Middle
Lehet-e alkészleteket létrehozni a data class-okból Kotlinben?
sobes.tech MI
Válasz az MI-től
Kotlinban az data class alapértelmezés szerint final, azaz nem örökölhetők. Ez azért van, hogy megőrizze az automatikusan generált metódusok, például az equals(), hashCode() és copy() helyes működését és szemantikáját.
Ha megpróbálsz egy data class-ból származó alosztályt létrehozni, a fordító hibát ad. Azonban, ha valóban szükséges, akkor a osztályt open-ná teheted, de akkor nem lehet data class.
Példa, ami nem fog fordulni:
data class User(val name: String)
class SpecialUser(val id: Int) : User("default") // Hiba: nem örökölhető data class-ból
Ezért nem lehet data class-ok alosztályait létrehozni.