Sobes.tech
Junior — Middle

Est-il possible de déclarer un héritier dans une data class en Kotlin?

sobes.tech IA

Réponse de l'IA

En Kotlin, une data class ne peut pas être héritée par défaut, car elles sont automatiquement déclarées comme finales. Cela est fait pour assurer le bon fonctionnement des méthodes générées, telles que equals(), hashCode() et copy().

Si vous essayez de déclarer une classe héritant d'une data class, le compilateur renverra une erreur.

Cependant, si c'est vraiment nécessaire, vous pouvez rendre une data class ouverte en ajoutant le modificateur open, mais cela n'est pas recommandé et n'est pas supporté directement, car une data class ne peut pas être open.

Exemple qui ne sera pas compilé :

data class User(val name: String)

class AdminUser(val adminLevel: Int) : User("Admin") // Erreur

Ainsi, l'héritage d'une data class en Kotlin est impossible.