Sobes.tech
Junior — Middle

Selgitage suletud klassi ja loendit programmeerimiskeeles.

sobes.tech AI

Vastus AI-lt

Kotlin keeles, näiteks, sealed class (sulgelt suletud klass) ja enum class (nimistu klass) kasutatakse piiratud tüüpi kogumi modelleerimiseks, kuid neil on erinevad omadused.

  • Sulgelt suletud klass (sealed class) võimaldab luua pärilikkuse hierarhia, millel võivad olla omadused ja meetodid. Kõik alamklassid peavad olema deklareeritud samas failis, mis sulgunud klass, mis tagab kontrolli laiendamise üle.
  • Enum klass (enum class) esindab fikseeritud konstandite kogumit, millest igaüks on selle klassi objekt. Enumid ei toeta pärilikkust, kuid võivad omada omadusi ja meetodeid.

Erinevused:

  1. Pärilikkus: sulgunud klass võimaldab luua erinevaid alamklasse erineva struktuuriga, enum — fikseeritud objektide kogum.
  2. Kasutus: sulgunud klass on kasulik erinevate andmetega olekute väljendamiseks, enum — fikseeritud konstandid.
  3. Laiendatavus: sulgunud klass võib olla laiendatav samas failis, enum — mitte.

Näide sulgunud klassist:

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

Näide enumist:

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