Sobes.tech
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:

  1. Ö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.
  2. Használat: a zárt osztály alkalmas különböző adatokkal rendelkező állapotok kifejezésére, az enum — fix konstansokra.
  3. 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
}