Swift 協議相對OC的改進,借鑒筆記

在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

有疑問的可以留言討論哦

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,593評論 25 708
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,974評論 6 342
  • 軟件架構: 按功能有mvc mvvm ,按照稱此 有數據層,邏輯層,展示層 iOS9新特性 臨時開啟后臺定位 ...
    Mr_Candy閱讀 779評論 0 7
  • 第一章 馴龍勇士 比克,是一位無人能敵的蓋世拳王。尋常的一天清晨,他從夢境中醒來,眼前的一切竟讓這位驍勇的拳王大驚...
    那天雨中的一陣光明閱讀 167評論 0 0