便利构造函数

class Person: NSObject {

var name : String?

var age: Int = 0


init(dic: [String:Any]) {

super.init()

setValuesForKeys(dic)

}


//便利构造函数  可能加了?

//可以返回nil前提是一个可失败的构造函数

//只能使用self调用其他构造函数

//不能使用super关键字

//作用:根据外部的参数决定是否创建读写

//便利构造函数默认调用自己的类的构造函数

convenience init?(name : String,age : Int) {

if age < 0 || age > 150 {

return nil

}

//执行到此,年龄合法

self.init(dic:["name":name,"age":age])

}





class Student: Person {

var no : String?

//便利构造函数不能在子类里重写

convenience init?(no: String,name: String,age: Int) {

self.init(name:name,age:age)

//便利构造函数 没有创建对象能力 只能通过调用其他构造函数 完成创建对象能力

self.no = no

}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容