Junior — Middle
Magyarázza el a zárt osztály és az enumeráció közötti különbségeket a programozási nyelvben.
sobes.tech MI
Válasz az MI-től
A Kotlin nyelvben például a sealed class (zárt osztály) és az enum class (felsorolásos osztály) arra szolgál, hogy korlátozott típusok halmazát modellezzék, de különböző jellemzőkkel rendelkeznek.
- Zárt osztály (sealed class) lehetővé teszi alosztályok hierarchiájának létrehozását, amelyek saját tulajdonságokkal és metódusokkal rendelkezhetnek. Minden alosztályt ugyanabban a fájlban kell deklarálni, mint a zárt osztály, ez biztosítja a bővítés ellenőrzését.
- Felsorolásos osztály (enum class) egy fix konstansok halmazát képviseli, amelyek mindegyike az adott osztály egy objektuma. Az enumok nem támogatják az öröklést, de tulajdonságokat és metódusokat tartalmazhatnak.
Különbségek:
- Öröklés: a zárt osztály lehetővé teszi különböző szerkezetű alosztályok létrehozását, az enum — fix objektumhalmaz.
- Használat: a zárt osztály alkalmas különböző adatokkal rendelkező állapotok kifejezésére, az enum — fix konstansokra.
- Bővíthetőség: a zárt osztályt a fájlon belül lehet bővíteni, az enumot — nem.
Példa zárt osztályra:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
Példa enumra:
enum class Direction {
NORTH, SOUTH, EAST, WEST
}