Sobes.tech
Junior — Middle

Peut-on implémenter la dispatch statique des méthodes à l'intérieur d'une classe?

sobes.tech IA

Réponse de l'IA

Dans le langage Swift (principalement pour iOS), la dispatch statique des méthodes à l’intérieur d’une classe est possible pour les méthodes déclarées comme static ou final. Ces méthodes sont appelées directement par type, sans recherche dynamique dans la table des méthodes virtuelles.

Exemple :

class MyClass {
    static func staticMethod() {
        print("Méthode statique")
    }
    final func finalMethod() {
        print("Méthode finale")
    }
    func dynamicMethod() {
        print("Méthode dynamique")
    }
}

MyClass.staticMethod() // appel de la méthode statique

let obj = MyClass()
obj.finalMethod() // appel de la méthode finale (dispatch statique)
obj.dynamicMethod() // appel de la méthode dynamique (dispatch dynamique)

Ainsi, la dispatch statique est possible, mais uniquement pour les méthodes qui ne peuvent pas être redéfinies dans des sous-classes.