Ответ
Да, можно, но с ограничениями.
- Data class не может быть унаследована от другого data class – это запрещено на уровне языка.
- Обычный класс может наследоваться от data class, но теряет автоматические методы (
equals(),hashCode(),toString(),copy()).
Пример:
open data class Person(val name: String)
class Employee(name: String, val id: Int) : Person(name)
Здесь Employee – обычный класс, а Person – data class.
Рекомендация: если нужна иерархия, лучше использовать интерфейсы или абстрактные классы.