协议用来给类型增加限制 增加所需要的变量列表 方法等
声明所需的变量列表 必须实现!
协议将没有公共父类但有类似行为的对象归为一类
类似纯虚函数 接口
只能声明不能实现
protocol eat {
var name:String{get set}
func eat(name:String)
}
class Flower: eat {
var name: String="食人花"
func eat(name:String) {
print(name,"吃人了")
}
}
class Dog: eat {
var name: String{
get{return "小狗狗"}
set{}
}
func eat(name:String) {
print(name,"eat")
}
}
测试:
Flower().eat("食人花")
Dog().eat("小狗狗")
var e:eat
e=Dog()
e.eat("小狗狗")
e=Flower()
e.eat("食人花")
输出:
食人花 吃人了
小狗狗 eat
小狗狗 eat
食人花 吃人了