我们爱Coding我们爱SwiftiOS Developer

Swift 协议相对OC的改进,借鉴笔记

2016-11-22  本文已影响22人  柠檬草YF

在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

有疑问的可以留言讨论哦

上一篇下一篇

猜你喜欢

热点阅读