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{
}
网友评论