Junior
La classe open est-elle finale ou non finale?
sobes.tech IA
Réponse de l'IA
Non final. Le mot-clé open indique clairement que vous pouvez hériter de cette classe et redéfinir ses membres.
open class BaseClass {
open func someMethod() {
// Implémentation par défaut
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Implémentation redéfinie
}
}
Comparons avec d'autres modificateurs d'accès :
| Modificateur | Héritage | Redéfinition des membres |
|---|---|---|
private |
Non (dans le fichier/portée) | Non |
fileprivate |
Non (dans le fichier) | Non |
internal |
Oui (dans le module) | Oui (dans le module) |
public |
Oui (dans le module) | Oui (dans le module) |
open |
Oui (dans n'importe quel module) | Oui (dans n'importe quel module) |
final |
Non | Non |
Une classe ou un membre marqué comme final ne peut pas être redéfini ou hérité, le rendant final. open fait l'inverse.