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:
- Pärilikkus: sulgunud klass võimaldab luua erinevaid alamklasse erineva struktuuriga, enum — fikseeritud objektide kogum.
- Kasutus: sulgunud klass on kasulik erinevate andmetega olekute väljendamiseks, enum — fikseeritud konstandid.
- 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
}