swift 3.0 关于协议中定义init的问题
protocol Pet : class
{
var name : String {get set}
init (name : String)
}
class Dog : Pet
{
var name : String
// 这个sex不想给默认值
var sex : String
// 实现Pet协议的init
init (name : String)
{
self.name = name
// 这里会报错,因为没有给sex初始化
}
}
上面的代码,如果在协议(Pet)里面规定了一个构造函数(init (name : String))
在使用它的类(Dog)中又有自己的没有默认值的变量(sex : String),假如这个变量就是不适合给默认值
那构造函数怎么写???实现协议的构造函数又不可以给自己的变量赋值,因为参数列表规定就是(name : String)
那在Dog类实现的Pet协议规定的init (name : String)一定会报错