在协议,协议扩展和类/子类中声明的函数

时间:2017-12-17 03:15:33

标签: swift

使用以下代码:

spray

控制台打印“flap-flap”,这是预期的。

如果我在子类中声明相同的函数而不是在超类中声明它,为什么控制台会打印“flap”?

protocol Flier {
    func fly()
}

extension Flier { 
    func fly() { print ("flap")}
}

class Bird: Flier {
    func fly() { print("flap-flap") }
}

class SmallBird: Bird {
}

let bird: Flier = SmallBird()
bird.fly()

0 个答案:

没有答案