Junior — Middle
Vysvetlite rozdiely medzi uzavretou triedou a enum v programovacom jazyku.
sobes.tech AI
Odpoveď od AI
V jazyku Kotlin slúžia napríklad sealed class (zatvorená trieda) a enum class (výčtová trieda) na modelovanie obmedzeného súboru typov, ale majú odlišné vlastnosti.
- Zatvorená trieda (sealed class) umožňuje vytváranie hierarchie podtried, ktoré môžu mať vlastné vlastnosti a metódy. Všetky podtriedy musia byť deklarované v rovnakom súbore ako zatvorená trieda, čo zabezpečuje kontrolu nad rozšírením.
- Výčtová trieda (enum class) predstavuje pevný súbor konštánt, z ktorých každá je objektom tejto triedy. Enumy nepodporujú dedičnosť, ale môžu mať vlastnosti a metódy.
Rozdiely:
- Dedičstvo: zatvorená trieda umožňuje vytváranie rôznych podtried s rôznymi štruktúrami, enum — pevný súbor objektov.
- Použitie: zatvorená trieda je vhodná na vyjadrenie stavov s rôznymi dátami, enum — na pevné konštanty.
- Rozšíriteľnosť: zatvorenú triedu je možné rozšíriť v rovnakom súbore, enum — nie.
Príklad zatvorenej triedy:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
}
Príklad enumu:
enum class Direction {
NORTH, SOUTH, EAST, WEST
}