Back to questions
СБЕР Автотех
Junior — Middle
71
Почему в Kotlin запрещено наследование от data class?
Companies where asked
Answer from AI
sobes.tech AI
В Kotlin наследование от data class запрещено, потому что data class автоматически генерирует методы equals(), hashCode(), toString(), а также copy() и компоненты для деструктуризации. Если разрешить наследование, то это может привести к неоднозначностям и ошибкам в поведении этих методов, так как подкласс может изменить состояние или логику, нарушая контракт, заложенный в data class.
Таким образом, запрет наследования обеспечивает целостность и предсказуемость поведения data class.
Пример:
data class User(val name: String, val age: Int)
// class AdminUser(name: String, age: Int, val adminLevel: Int) : User(name, age) // Ошибка компиляции