Junior — Middle
Lze implementovat statickou dispatch metod uvnitř třídy?
sobes.tech AI
Odpověď od AI
V jazyce Swift (zejména pro iOS) je statická dispatch metod uvnitř třídy možná pro metody deklarované jako static nebo final. Tyto metody jsou volány přímo podle typu, bez dynamického hledání v tabulce virtuálních metod.
Příklad:
class MyClass {
static func staticMethod() {
print("Statická metoda")
}
final func finalMethod() {
print("Finální metoda")
}
func dynamicMethod() {
print("Dynamická metoda")
}
}
MyClass.staticMethod() // volání statické metody
let obj = MyClass()
obj.finalMethod() // volání finální metody (statická dispatch)
obj.dynamicMethod() // volání dynamické metody (dynamická dispatch)
Tedy, statická dispatch je možná, ale pouze pro metody, které nemohou být přepsány v podtřídách.