Junior — Middle
É possível implementar a despachagem estática de métodos dentro de uma classe?
sobes.tech IA
Resposta da IA
Na linguagem Swift (principalmente para iOS), a despacho estático de métodos dentro de uma classe é possível para métodos declarados como static ou final. Esses métodos são chamados diretamente pelo tipo, sem busca dinâmica na tabela de métodos virtuais.
Exemplo:
class MyClass {
static func staticMethod() {
print("Método estático")
}
final func finalMethod() {
print("Método final")
}
func dynamicMethod() {
print("Método dinâmico")
}
}
MyClass.staticMethod() // chamada do método estático
let obj = MyClass()
obj.finalMethod() // chamada do método final (despacho estático)
obj.dynamicMethod() // chamada do método dinâmico (despacho dinâmico)
Portanto, a despacho estático é possível, mas apenas para métodos que não podem ser sobrescritos em subclasses.