Back to questions
Junior — Middle
68
Можно ли в Kotlin создавать наследуемые data-классы от других классов?
Companies where asked
Viasat tech
Answer from AI
sobes.tech AI
В Kotlin data-классы по умолчанию являются финальными (final), то есть их нельзя наследовать. Если попытаться сделать data-класс наследуемым, компилятор выдаст ошибку.
Однако, начиная с Kotlin 1.1, можно объявить data-класс как open, чтобы разрешить наследование, но это не рекомендуется и имеет ограничения. В частности, наследуемый data-класс не может быть data-классом.
Пример:
open data class User(val name: String, val age: Int)
class Employee(name: String, age: Int, val position: String) : User(name, age)
Но чаще всего data-классы используются именно для хранения данных и не предполагают наследование. Если нужна иерархия, лучше использовать обычные классы или интерфейсы.