Sobes.tech
Назад к вопросам
Junior — Middle
90

Можно ли создавать подклассы у data class в Kotlin?

Компании, где спрашивали
HeadHunterHeadHunter
ИннотехИннотех
Платформа Трим
trendtech

Ответ от нейросети

sobes.tech AI

В Kotlin data class по умолчанию являются final, то есть их нельзя наследовать. Это сделано для сохранения семантики и корректной работы автоматически сгенерированных методов, таких как equals(), hashCode() и copy().

Если попытаться создать подкласс от data class, компилятор выдаст ошибку. Однако, если очень нужно, можно сделать класс открытым (open), но тогда он не может быть data class.

Пример, который не скомпилируется:

data class User(val name: String)

class SpecialUser(val id: Int) : User("default") // Ошибка: нельзя наследовать от data class

Таким образом, создавать подклассы у data class нельзя.