在OC 的使用中,協議對于繼承來說,很大的一個不變之處就是,每個遵循這個協議的類,使用這個協議的方法,都必須 實現它,現在Swift 對它 ,做了改進,對協議增加了實現,如下
protocol Workable {
func work()
}
extension Workable {
func work() {
print("I'm carrying bricks")
}
}
有了上面的代碼,當你創建一個遵從 Workable 協議的類或者是結構體時,就能獲得 work() 方法
這只是一個默認的實現方式。因此你可以在需要的時候重新定義這個方法;如果不重新定義的話,會使用這個默認方法,當然你也可以給這個方法增加參數,等等。
使用這種方式,可以大大簡化我們的代碼,我們甚至什么都不需做,指定繼承關系就完成了工作:
class Worker: Person, Workable {
}
class Robot: Machine, Workable {
}
...
let worker = Worker()
let robot = Robot()
worker.work() // I'm carrying bricks
robot.work() // I'm carrying bricks
有疑問的可以留言討論哦