Junior — Middle
Peut-on créer des sous-classes dans une data class en Kotlin?
sobes.tech IA
Réponse de l'IA
En Kotlin, les data class sont par défaut final, ce qui signifie qu'elles ne peuvent pas être héritées. Cela est fait pour préserver la sémantique et le bon fonctionnement des méthodes générées automatiquement, telles que equals(), hashCode() et copy().
Si vous essayez de créer une sous-classe de data class, le compilateur renverra une erreur. Cependant, si c'est vraiment nécessaire, vous pouvez rendre la classe open, mais alors elle ne pourra pas être une data class.
Exemple qui ne sera pas compilé :
data class User(val name: String)
class SpecialUser(val id: Int) : User("default") // Erreur : impossible d'hériter d'une data class
Ainsi, il n'est pas possible de créer des sous-classes de data class.