[Swift] 纯文本查看 复制代码
// 当看到一只鸟走起来像鸭子、游泳起来像鸭子、叫起来也像鸭子,那么这只鸟就可以被称为鸭子。
protocol Duck {
    func move()
    func swim()
        var bird: Duck        
        
        bird = Penguin()
        print(bird)
        bird.move()
        bird.swim()
        bird.bray()
        
        
        bird = Daigo()
        print(bird)
        bird.move()
        bird.swim()
        bird.bray()
Penguin()
Penguin move
Penguin swim
Penguin bray
Daigo()
Duck move
Daigo swim
Duck bray

    func bray()
}
//而我们知道鸭子是这样活动的
extension Duck {
    func move() {
        print("Duck move")
    }
    func swim() {
        print("Duck swim")
    }
    func bray() {
        print("Duck bray")
    }
}
// 企鹅也是一种能跑,能游泳,能叫的那么可能就是一直鸭子
struct Penguin: Duck {
    func move() {
        print("Penguin move")
    }
    func swim() {
        print("Penguin swim")
    }
    func bray() {
        print("Penguin bray")
    }
}
//我听说醍醐也是一种能跑,能游泳,能叫的东西,那么他也是一种鸭子,但没见过他怎么跑,怎么叫,那他可能是像鸭子一样叫
struct Daigo: Duck {
    func swim() {
        print("Daigo swim")
    }
}