Junior — Middle
Je možné implementovať statickú dispatch metódu v rámci triedy?
sobes.tech AI
Odpoveď od AI
V jazyku Swift (predovšetkým pre iOS) je statická dispatch metód v rámci triedy možná pre metódy deklarované ako static alebo final. Takéto metódy sa volajú priamo podľa typu, bez dynamického vyhľadávania v tabuľke virtuálnych metód.
Príklad:
class MyClass {
static func staticMethod() {
print("Statická metóda")
}
final func finalMethod() {
print("Finálna metóda")
}
func dynamicMethod() {
print("Dynamická metóda")
}
}
MyClass.staticMethod() // volanie statickej metódy
let obj = MyClass()
obj.finalMethod() // volanie finálnej metódy (statická dispatch)
obj.dynamicMethod() // volanie dynamickej metódy (dynamická dispatch)
Teda, statická dispatch je možná, ale iba pre metódy, ktoré nemôžu byť prepísané v podtriedach.