Sobes.tech
Junior — Middle

De ce este interzisă moștenirea de la data class în Kotlin?

sobes.tech AI

Răspuns de la AI

În Kotlin, moștenirea de la data class este interzisă deoarece data class generează automat metode precum equals(), hashCode(), toString(), precum și copy() și componente pentru destrukturare. Permisiunea moștenirii poate duce la ambiguități și erori în comportamentul acestor metode, deoarece o subclasă poate modifica starea sau logica, încălcând contractul stabilit în data class.

Prin urmare, interdicția de a moșteni asigură integritatea și previzibilitatea comportamentului data class.

Exemplu:

data class User(val name: String, val age: Int)

// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Eroare de compilare