Junior — Middle
È possibile implementare la dispatch statica dei metodi all'interno di una classe?
sobes.tech AI
Risposta dell'AI
Nel linguaggio Swift (principalmente per iOS), la dispatch statica dei metodi all’interno di una classe è possibile per i metodi dichiarati come static o final. Questi metodi vengono chiamati direttamente per tipo, senza ricerca dinamica nella tabella dei metodi virtuali.
Esempio:
class MyClass {
static func staticMethod() {
print("Metodo statico")
}
final func finalMethod() {
print("Metodo finale")
}
func dynamicMethod() {
print("Metodo dinamico")
}
}
MyClass.staticMethod() // chiamata al metodo statico
let obj = MyClass()
obj.finalMethod() // chiamata al metodo finale (dispatch statico)
obj.dynamicMethod() // chiamata al metodo dinamico (dispatch dinamico)
Pertanto, la dispatch statica è possibile, ma solo per i metodi che non possono essere sovrascritti nelle sottoclassi.