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 :
publicpermet 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.openpermet 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