Junior
Quelle est la différence entre une classe simple et une classe open en Swift?
sobes.tech IA
Réponse de l'IA
En Swift, par défaut, toutes les classes sont final — elles ne peuvent pas être héritées. Pour qu'une classe puisse être héritée, elle doit être déclarée comme open ou public, mais il existe des différences importantes :
open— le niveau d'accès le plus ouvert. Une classe avec le modificateuropenpeut être héritée et ses méthodes peuvent être redéfinies aussi bien à l'intérieur qu'à l'extérieur du module.public— la classe est accessible en dehors du module, mais l'héritage et la redéfinition des méthodes ne sont possibles qu'à l'intérieur du même module.
Ainsi, une classe open permet d'étendre et de modifier le comportement dans d'autres modules, alors qu'une classe simple (par exemple, public) ne le permet pas.
Exemple :
open class OpenClass {
open func greet() {
print("Hello from OpenClass")
}
}
public class PublicClass {
public func greet() {
print("Hello from PublicClass")
}
}
// Dans un autre module, il est possible d'hériter de OpenClass et de redéfinir greet(),
// mais pas de PublicClass.