Sobes.tech
Junior — Middle

Expliquez les différences entre une classe fermée et une énumération dans le langage de programmation.

sobes.tech IA

Réponse de l'IA

Dans le langage Kotlin, par exemple, classe scellée (sealed class) et classe enum (enum class) servent à modéliser un ensemble limité de types, mais ont des caractéristiques différentes.

  • Classe scellée (sealed class) permet de créer une hiérarchie de sous-classes qui peuvent avoir leurs propres propriétés et méthodes. Toutes les sous-classes doivent être déclarées dans le même fichier que la classe scellée, ce qui garantit le contrôle de l'extension.
  • Classe enum (enum class) représente un ensemble fixe de constantes, chacune étant un objet de cette classe. Les enums ne supportent pas l'héritage, mais peuvent avoir des propriétés et des méthodes.

Différences :

  1. Héritage : la classe scellée permet de créer différentes sous-classes avec des structures variées, l'enum — un ensemble fixe d'objets.
  2. Utilisation : la classe scellée est utile pour exprimer des états avec différentes données, l'enum — pour des constantes fixes.
  3. Extensibilité : la classe scellée peut être étendue dans le même fichier, l'enum — non.

Exemple de classe scellée :

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

Exemple d'enum :

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