Swift:基础(三十)协议

Swift 协议

协议规定了用来实现某一特定功能所必需的方法和属性。

任意能够满足协议要求的类型被称为遵循(conform)这个协议。

类,结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。

语法

协议的语法格式如下:

protocol SomeProtocol {
    // 协议内容
}

要使类遵循某个协议,需要在类型名称后加上协议名称,中间以冒号:分隔,作为类型定义的一部分。遵循多个协议时,各协议之间用逗号,分隔。

struct SomeStructure: FirstProtocol, AnotherProtocol {
    // 结构体内容
}

如果类在遵循协议的同时拥有父类,应该将父类名放在协议名之前,以逗号分隔。

class SomeClass: SomeSuperClass, FirstProtocol, AnotherProtocol {
    // 类的内容
}

备注

1.Swift中协议类似于别的语言里的接口,协议里只做方法的声明,包括方法名、返回值、参数等信息,而没有具体的方法实现。

protocol Person {
    //读写属性
    var name:String{get set}
    
    //只读属性
    var age:Int{get}
    
    //类型方法
    static func method1()
    
    //实例方法
    func method2() -> Int
    
    //突变方法
    mutating func method3()
}

2.协议可以继承另一个协议

protocol Animal{
    func move()
}

protocol Bird:Animal{
    func song()
}

class Chiken:Bird{
    func song(){
        print("母鸡咯咯")
    }
    
    func move(){
        print("母鸡走")
    }
}

3.如果某个类集继承了某个父类,又遵循了某个协议,那么冒号后面应该先写父类,再写协议

class CC:继承的父类, 协议1, 协议2{
    
}

你可能感兴趣的:(Swift:基础(三十)协议)