Sobes.tech
Junior — Middle

Quelle est la différence entre les modificateurs d'accès public et open en Swift?

sobes.tech IA

Réponse de l'IA

En Swift, les modificateurs d'accès public et open permettent tous deux d'utiliser une classe ou une méthode en dehors du module, mais il existe une différence importante :

  • public permet d'utiliser la classe ou la méthode en dehors du module, mais ne permet pas l'héritage ou la surcharge en dehors du module.
  • open permet non seulement l'utilisation, mais aussi l'héritage des classes et la surcharge des méthodes en dehors du module.

Autrement dit, si vous souhaitez que votre classe puisse être étendue et surchargée dans d'autres modules, utilisez open. Si vous souhaitez simplement donner accès à la classe ou à la méthode sans possibilité d'héritage, utilisez public.

Exemple :

public class PublicClass {
    public func method() {}
}

open class OpenClass {
    open func method() {}
}

// Dans un autre module :
// class SubClass: PublicClass {} // Erreur : impossible d'hériter
// class SubClass: OpenClass {} // Permis