Sobes.tech
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.