Swift之协议
协议规定了用来实现某一特定功能所必需的方法和属性。
任意能够满足协议要求的类型被称为遵循(conform)这个协议。
类,结构体或枚举类型都可以遵循协议,并提供具体实现来完成协议定义的方法和功能。
引入
协议定义了一个大致的框架,规定里面有哪些属性和方法,至于这个属性的值是多少或者方法怎么实现,我不管,留给别人实现。——像java里接口。
协议的定义
protocol SomeProtocol {
// 属性
// 方法
}
- 属性定义要求
1、不能用默认值
2、必须指明类型: { set get } 来表示属性是可读可写的,可读属性则用 { get }
3、必须用var修饰 - 方法定义要求
1、方法不能有方法体
2、方法不可以有默认值
//【协议的定义】——错误示范
protocol Pet{
var name:String = "tets"
var age:Int = 18
func feed(food:String){
}
}
//【协议的定义】——正确示范
protocol Pet{
var name:String{
get set}
var age:Int{
get}
func feed(food:String)
func shout(sound:String