swift 類型繼承協(xié)議后,方法調(diào)用規(guī)則測試

測試代碼:

protocol TheProtocol {
    func method1()
    func method3()
}

extension TheProtocol {
    func method1() {
        print("Called method1 from TheProtocol")
    }
    func method2() {
        print("Called method2 from TheProtocol")
    }
    
    func method3() {
        print("Called method3 from TheProtocol")
    }
}

struct Struct1: TheProtocol {
    func method1() {
        print("called method1 from Struct1")
    }
    
    func method2() {
        print("called method2 from Struct1")
    }
}


let s1 = Struct1()
s1.method1()
s1.method2()
s1.method3()

print("\n-----------------\n")

let s2:TheProtocol = Struct1()
s2.method1()
s2.method2() // 如果在 extension TheProtocol 未實(shí)現(xiàn)該方法,編譯報錯
s1.method3()

print("\n-----------------\n")

結(jié)論:


image

參考:
http://www.itdecent.cn/p/3b3219fb8ada
https://medium.com/ios-os-x-development/swift-protocol-extension-method-dispatch-6a6bf270ba94

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容