Junior — Middle
Da li je moguće implementirati statičku dispatch metod unutar klase?
sobes.tech АИ
Одговор од АИ
U jeziku Swift (pretežno za iOS) statička dispatch metoda unutar klase je moguća za metode deklarisane kao static ili final. Takve metode se pozivaju direktno po tipu, bez dinamičkog pretraživanja u tabeli virtuelnih metoda.
Primer:
class MyClass {
static func staticMethod() {
print("Statička metoda")
}
final func finalMethod() {
print("Final metoda")
}
func dynamicMethod() {
print("Dinamička metoda")
}
}
MyClass.staticMethod() // poziv statičke metode
let obj = MyClass()
obj.finalMethod() // poziv finalne metode (statička dispatch)
obj.dynamicMethod() // poziv dinamičke metode (dinamička dispatch)
Dakle, statička dispatch je moguća, ali samo za metode koje ne mogu biti prepisane u podklasama.