Sobes.tech
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)

Така наследяването между клас данни и друг клас е възможно, но с ограничения, и по-често се използва композиция (вграждане на обекти) вместо наследяване за класове данни.