十一.使用协议作为类型
1. 协议也相当于一种类型,与枚举、结构体、类相比,协议相当于一种抽象的类型,它被彻底抽象成只定义规范,不负责实现。因此定义协议之后,就可以像枚举、结构体、类那样当作类型来使用,只是协议不能直接用于创建实例,协议可以做如下方面的用途:
(1)可使用协议声明变量
(2)可使用协议作为函数、方法、构造器的形参类型、返回值类型
(3)可使用协议作为is、as等运算符的 ***后 *** 一个操作数
2. 举个栗子:
protocol Eatable
{
//定义实例方法
Func taste()
//协议使用class修饰类型方法
class func test(msgs : String…)
}
//实现Eatable协议
struct Pie : Eatable
{
var weight : Double
//定义实例方法
func taste()
{
print(“饼干很好吃。。。”)
}
//结构体使用static修饰类型方法
static func test (msgs : String…)
{
print(“test method”)
for msg in msgs
{
print(“msg is: ”\(msg))
}
}
}
class Apple : Eat