Junior — Middle
Ist es möglich, einen Erben in einer data class in Kotlin zu deklarieren?
sobes.tech KI
Antwort von AI
In Kotlin kann eine data class standardmäßig nicht vererbt werden, da sie automatisch als final deklariert wird. Dies wurde gemacht, um die korrekte Funktion der generierten Methoden wie equals(), hashCode() und copy() sicherzustellen.
Wenn man versucht, eine Klasse zu deklarieren, die von einer data class erbt, gibt der Compiler einen Fehler aus.
Wenn es jedoch wirklich notwendig ist, kann man eine data class offen machen, indem man den Modifikator open hinzufügt, aber das wird nicht empfohlen und wird nicht direkt unterstützt, da eine data class nicht open sein kann.
Beispiel, das nicht kompiliert:
data class User(val name: String)
class AdminUser(val adminLevel: Int) : User("Admin") // Fehler
Daher ist die Vererbung von data class in Kotlin unmöglich.