Sobes.tech
Junior — Middle

Pourquoi l'héritage des data class est-il interdit en Kotlin?

sobes.tech IA

Réponse de l'IA

En Kotlin, l'héritage de data class est interdit car data class génère automatiquement des méthodes telles que equals(), hashCode(), toString(), ainsi que copy() et des composants pour la destructuration. Permettre l'héritage pourrait entraîner des ambiguïtés et des erreurs dans le comportement de ces méthodes, car une sous-classe pourrait modifier l'état ou la logique, violant ainsi le contrat établi dans data class.

Ainsi, l'interdiction d'héritage garantit l'intégrité et la prévisibilité du comportement de data class.

Exemple :

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

// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Erreur de compilation