Sobes.tech
Junior — Middle

Kann man Unterklassen bei Data Classes in Kotlin erstellen?

sobes.tech KI

Antwort von AI

In Kotlin sind data class standardmäßig final, das heißt, sie können nicht vererbt werden. Dies wurde gemacht, um die Semantik und die korrekte Funktion der automatisch generierten Methoden wie equals(), hashCode() und copy() zu bewahren.

Wenn man versucht, eine Unterklasse von data class zu erstellen, gibt der Compiler einen Fehler aus. Wenn es jedoch unbedingt notwendig ist, kann man die Klasse open machen, aber dann kann sie keine data class sein.

Beispiel, das nicht kompiliert:

data class User(val name: String)

class SpecialUser(val id: Int) : User("default") // Fehler: kann nicht von data class erben

Daher ist es nicht möglich, Unterklassen von data class zu erstellen.