Sobes.tech
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.