一、协议的概念
协议动议了一个大致的框架,规定里有哪些属性和方法,至于这个属性的值是多少或者方法怎么实现都不管
二、定义协议的语法
protocol 协议名{
// 属性
//方法
}
三、属性定义的要求
协议中定义的属性必须遵循以下原则:
1、不能用默认值
2、必须指明类型:{set get } 来表明属性是可读可写的,刻度属性则用{get}
3、必须用var修饰
四、方法定义要求
1、方法不能有方法体
2、定义协议中的方法不可以传默认值
protocol Pet{
var name:String{get set}
var age:Int{get}
func eat(food:String)//方法不能有方法体
func sleep(stop:String)
}
一、遵循协议的语法
clas 类:父类,协议1,协议2{
}继承某个父类,并遵循协议1和协议2
二、遵循协议的规则
1、属性可以设置默认值
2、协议中属性为可读可写,必须声明为var
3、协议中属性为可读的,视实现中可声明let或者var
实现协议中的方法:
1、方法中的参数可以传默认值
//遵循协议
clas Cat:Pet{
//可读可写属性必须用var
var name:String = "mini"
//只读属性可以用let修饰
let age:Int = 18
func eat(food:String){
print("\(name)吃\(food)")
}
func sleep(stop:String){
print("\(stop)")
}
}