小编Igo*_*gin的帖子

调用Swift协议扩展方法而不是在子类中实现的方法

我遇到了一个问题,在下面的代码(Swift 3.1)中解释:

protocol MyProtocol {
    func methodA()
    func methodB()
}

extension MyProtocol {
    func methodA() {
        print("Default methodA")
    }

    func methodB() {
        methodA()
    }
}

// Test 1
class BaseClass: MyProtocol {

}

class SubClass: BaseClass {
    func methodA() {
        print("SubClass methodA")
    }
}


let object1 = SubClass()
object1.methodB()
//

// Test 2
class JustClass: MyProtocol {
    func methodA() {
        print("JustClass methodA")
    }
}

let object2 = JustClass()
object2.methodB()
//
// Output
// Default methodA
// JustClass methodA
Run Code Online (Sandbox Code Playgroud)

所以我希望在调用后打印"SubClass …

protocols swift

19
推荐指数
1
解决办法
3528
查看次数

标签 统计

protocols ×1

swift ×1