Back to questions
Промсвязьбанк
Junior — Middle
69
Возможно ли объявить наследника у data class в Kotlin?
Companies where asked
Answer from AI
sobes.tech AI
В Kotlin data class по умолчанию не может быть наследником, так как они автоматически объявляются как final. Это сделано для обеспечения корректной работы сгенерированных методов, таких как equals(), hashCode() и copy().
Если попытаться объявить класс, наследующий data class, компилятор выдаст ошибку.
Однако, если очень нужно, можно сделать data class открытым, добавив модификатор open, но это не рекомендуется и не поддерживается напрямую, так как data class не может быть open.
Пример, который не скомпилируется:
data class User(val name: String)
class AdminUser(val adminLevel: Int) : User("Admin") // Ошибка
Таким образом, наследование от data class в Kotlin невозможно.