美文网首页Swift开发iOS开发iOS学习笔记
Swift学习_协议和扩展的结合

Swift学习_协议和扩展的结合

作者: CN_HarrySun | 来源:发表于2017-07-21 11:11 被阅读17次
Swift

1.通过扩展采纳协议

// 定义一个Animal协议
protocol Animal{
    
    var getName:String{get}
}

// 定义一个Dog类,但是没有采纳Animal协议
class Dog{
    
    func shout() -> String{
        return "汪汪汪"
    }
}

// 通过扩展采纳并实现Animal协议
extension Dog:Animal{
    
    var getName:String{
        
        return "泰迪"
    }
}

let dog = Dog()

print("狗的叫声\(dog.shout())")
print("狗的名字\(dog.getName)")

2.通过空扩展采纳协议

当一个类型已经符合了每个协议中的所有要求,却没有声明采纳该协议时,类型并不会自动采纳协议,此时,可以通过一个实现体为空的扩展(即空扩展)来采纳该协议

protocol Getname{
    
    var getName:String{get}
}

// 定义一个Student结构体
struct Student {
    
    var name:String
    var getName:String{
        return "这个学生的名字是\(name)"
    }
}

extension Student:Getname{}

let people = Student(name:"小明")
print(people.getName)
let student:Getname = people
print(student.getName)

3.协议的扩展

protocol People{
    
    func drink() -> String
}

// 扩展新增方法并实现,此时必须实现
extension People{
    
    func eat() -> String {
        
        return "吃骨头"
    }
    func legs() -> Int {
        
        return 2
    }
}

class Teacher: People {
    
    func drink() -> String {
        return "喝水"
    }
}

let teacher = Teacher()
print(teacher.drink())
print(teacher.eat())
print("人类\(teacher.legs())条腿")

协议和扩展的结合结果输出
代码已上传至git:
--> 传送门:Swift_基本语法

附录

查看完整专栏《Swift学习》

有问题欢迎指正以及相互探讨 —— CoderSun

相关文章

  • Swift学习_协议和扩展的结合

    1.通过扩展采纳协议 2.通过空扩展采纳协议 当一个类型已经符合了每个协议中的所有要求,却没有声明采纳该协议时,类...

  • Swift协议和扩展

    协议 与OC中一样,协议的关键字也是protocol在Swift中,class(类)、struct(结构体)、en...

  • swift —— 协议和扩展

    用 "protocol" 关键字来声明一个协议。例: 注:对于类如果方法中要修改 self;对于结构体,枚举,如果...

  • Swift:协议和扩展

    Protocols and Extensions github:Swift基础实例github:SwiftBasi...

  • Swift的协议和扩展

    在扩展里添加协议遵循 你可以扩展一个已经存在的类型来采纳和遵循一个新的协议,就算是你无法访问现有类型的源代码也行。...

  • Swift协议和扩展(四)

    1. 协议, 协议可以看成一个类的需求清单, 类可以声明它们拥有这些属性和方法. 协议看起来和类非常相似, 只是没...

  • Swift(九)协议和扩展

    更新:2018.05.24 整理了一下demo:SwiftDemo 扩展(Extension) Swift中,扩展...

  • Swift基础-协议和扩展

    协议 协议是描述某物必须具有的属性和方法的一种方式。然后,您可以告诉Swift哪些类型使用该协议-这一过程称为采用...

  • swift中的协议和扩展

    1.Swift中的Protocol 什么是Protocol? Protocol是Swift中的一种自定义类型,可以...

  • Swift 中的协议和扩展

    协议 协议的语法 自定义类型声明时,将协议名放在类型名的冒号之后来表示该类型采纳一个特定的协议。多个协议可以用都好...

网友评论

    本文标题:Swift学习_协议和扩展的结合

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