Junior — Middle
Може ли да се определи наследяване между клас данни и друг клас?
sobes.tech AI
Отговор от AI
В Kotlin класът данни (data class) може да наследява от друг клас, ако той не е final (т.е. отворен за наследяване). Въпреки това, класът данни автоматично наследява от Any и трябва да има поне един параметър в конструктора.
Важно:
- Класът данни не може да бъде
openилиabstract. - Наследяването от клас данни е възможно, но самият клас данни не може да бъде родителски клас (т.е. не може да наследява от
data class).
Пример:
open class Person(val name: String)
data class Employee(val id: Int, val person: Person) : Person(person.name)
Така наследяването между клас данни и друг клас е възможно, но с ограничения, и по-често се използва композиция (вграждане на обекти) вместо наследяване за класове данни.