Junior — Middle
Da li je moguće deklarisati naslednika u data class u Kotlinu?
sobes.tech АИ
Одговор од АИ
В 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 невозможно.