Ответ
Data class в Kotlin имеет несколько ограничений:
- Нельзя наследоваться от другого data class (но можно от обычного класса или интерфейса).
- Нельзя быть
abstract,open,sealedилиinner– data class всегдаfinal. - Первичный конструктор должен содержать минимум один параметр (
val/var). - Параметры конструктора не могут быть
vararg. - Автоматически генерируемые
equals(),hashCode(),toString()иcopy()работают только с параметрами первичного конструктора.
Пример:
data class User(val id: Int, val name: String) // Корректно
// data class Empty() // Ошибка: нужен хотя бы один параметр