<pre name="code" class="objc">class man {
var name : String
init (name: String){
self.name = name
}
}
//继承自man
class xiaoming:man {
var age : NSInteger
init(name: String , age:NSInteger) {
//这里属性赋值与调用父类的构造器方法 位置不能互换, 必须先把自身的某些特殊属性进行初始化 再调用父类构造函数 才能完成自身的初始化 进而可以对属性进行赋值操作
self.age = age
super.init (name: name)
}
//便利构造器
convenience override init(name:String){
//便利构造器 必须调用本类中的其他指定构造器,然后才能对属性赋值.
//原因很简单就是如果先对属性进行赋值在调用构造器的话, 那么构造器会把便利构造器刚赋的新值覆盖掉
self.init(name:name,age:20)
}
}
var xiao = xiaoming.init(name:"xiaoming", age: 18)
var lei = xiaoming.init(name: "雷")
swift 构造函数 与便利构造函数
最新推荐文章于 2022-09-19 22:18:57 发布