最近在某个 iOS 开发交流群里看到了一个非常基本、却又很典型的例子:
protocol Eatable {
func eat()
}
extension Eatable {
func eat() {
print("吃东西")
}
}
struct Person: Eatable {
func eat() {
print("吃米饭")
}
}
let p1: Person = Person()
let p2: Eatable = Person()
p1.eat()
p2.eat()