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