美文网首页我们爱Coding我们爱SwiftiOS Developer
Swift 协议相对OC的改进,借鉴笔记

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

作者: 柠檬草YF | 来源:发表于2016-11-22 16:48 被阅读22次

在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

有疑问的可以留言讨论哦

相关文章

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

    在OC 的使用中,协议对于继承来说,很大的一个不变之处就是,每个遵循这个协议的类,使用这个协议的方法,都必须 实现...

  • 【Tips】Swift Protocol

    前言 本文是笔者学习Swift协议的笔记。 开始 OC中判断是否遵守某个协议有对应的方法,Swift中也有,但是开...

  • OC和Swift比较

    OC与swift 1.协议 OC:主要用来传值 swift:不仅可以用来传值,swift中的协议可以定义属性方法,...

  • OC和JS交互(一):协议拦截

    协议拦截 通俗点理解,就是定义好一个协议,JS使用该协议来调用OC/Swift的方法,并且传值给OC/Swift。...

  • 面试题

    Swift和OC的区别? 1.swift是静态语言,有类型推断,OC是动态语言。2.swift面向协议编程,OC面...

  • iOS - Swift 面向协议编程(一)

    OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行 面向对象开发 传...

  • Swift-面向协议编程

    前言 OC无法做到面向协议开发,而Swift可以,因为Swift可以做到协议方法的具体实现,而OC不行 面向对象开...

  • iOS&Swift&OC 闭包和Block的相互转化

    一、Swift的闭包 -> OC的block 二、OC的block -> Swift的闭包 文章部分内容借鉴链接:...

  • ios面试

    一、OC与Swift的区别 1.swift是静态语言,有类型推断,OC是动态语言。2.swift面向协议编程,OC...

  • swift面试题

    一.Swift和OC的区别? 1.swift是静态语言,有类型推断,OC是动态语言。 2.swift面向协议编程,...

网友评论

    本文标题:Swift 协议相对OC的改进,借鉴笔记

    本文链接:https://www.haomeiwen.com/subject/lctmpttx.html