Sobes.tech
Junior — Middle

Оё имкон дорад, ки меросгирӣ байни синфи додаҳо ва синфи дигар муайян карда шавад?

sobes.tech AI

Ҷавоб аз AI

Дар Kotlin, data class метавонад аз синфи дигар мерос барад, агар он final набошад (яъне, барои мерос кушода бошад). Аммо, data class автоматӣ мерос мегирад аз Any ва бояд ҳадди ақал як параметр дар конструктор дошта бошад.

Мухим:

  • Data class наметавонад open ё abstract бошад.
  • Меросгирӣ аз data class имконпазир аст, аммо худи data class наметавонад синфи падар бошад (яъне, аз data class мерос гирифтан мумкин нест).

Масалан:

open class Person(val name: String)

data class Employee(val id: Int, val person: Person) : Person(person.name)

Бинобар ин, меросгирӣ байни data class ва синфи дигар имконпазир аст, аммо бо маҳдудиятҳо, ва одатан истифодаи композиция (вградкунии объектҳо) дар ҷойи меросгирӣ барои data class-ҳо бештар истифода мешавад.