Ответ
Data class в Kotlin — удобный инструмент для хранения данных, но есть ограничения:
- Нельзя наследоваться —
data classне может бытьopen,abstractилиsealed(но может наследовать другие классы). - Нельзя объявлять как
inner— вложенные data class не поддерживают модификаторinner. - Нельзя изменять
equals(),hashCode(),toString()вручную — компилятор генерирует их автоматически. - Нельзя копировать с изменением
valвcopy()— толькоvarили через пересоздание.
Пример:
data class User(val id: Int, var name: String)
val user = User(1, "Alex")
val updatedUser = user.copy(name = "Max") // name — var, можно изменить