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