Sobes.tech
Junior — Middle

Izskaidrojiet slēgtās klases un enumerācijas atšķirības programmēšanas valodā.

sobes.tech AI

Atbilde no AI

Kotlin valodā, piemēram, sealed class (slēgta klase) un enum class (izvēles klase) kalpo, lai modelētu ierobežotu tipu kopumu, bet tiem ir dažādas īpašības.

  • Slēgta klase (sealed class) ļauj izveidot iedalījumu hierarhiju, kurai var būt savas īpašības un metodes. Visas apakšklases jādeklarē tajā pašā failā kā slēgtā klase, kas nodrošina kontroli pār paplašināšanu.
  • Enum klase (enum class) pārstāv fiksētu konstantes kopumu, no kurām katra ir šīs klases objekts. Enum nesupportē mantošanu, bet var saturēt īpašības un metodes.

Atšķirības:

  1. Mantošana: slēgta klase ļauj izveidot dažādas apakšklases ar dažādām struktūrām, enum — fiksēts objektu kopums.
  2. Lietošana: slēgta klase ir noderīga, lai izteiktu stāvokļus ar dažādiem datiem, enum — fiksētām konstancēm.
  3. Paplašināmība: slēgta klase var tikt paplašināta tajā pašā failā, enum — nē.

Piemērs slēgtai klasei:

sealed class Result {
    data class Success(val data: String) : Result()
    data class Error(val error: Throwable) : Result()
}

Piemērs enum:

enum class Direction {
    NORTH, SOUTH, EAST, WEST
}