Sobes.tech
Junior — Middle
98

L'héritage est-il autorisé dans les classes de données en Kotlin?

Entreprises à qui on a demandé
ПСБ

Réponse de l'IA

sobes.tech IA

В Kotlin data class по умолчанию не может быть унаследован, так как они объявлены с модификатором final. Это сделано для того, чтобы сохранить семантику и поведение автоматически сгенерированных методов (equals(), hashCode(), toString(), copy()).

Если попытаться унаследовать data class, компилятор выдаст ошибку.

Однако, если очень нужно, можно объявить класс как open, но тогда он не может быть data class.

Пример:

// Ошибка компиляции
// data class User(val name: String)
// class AdminUser(name: String) : User(name) // нельзя наследовать data class

// Правильно
open class User(val name: String)
class AdminUser(name: String) : User(name)

Итого: наследование от data class запрещено.