类类型有两种初始化函数,以检查是否定义存储属性接收初始值,即指定初始化和方便初始化函数。
指定初始化和便捷初始化器
程序指定初始化
复制代码class mainClass {
var no1 : Int // local storage
init(no1 : Int) {
self.no1 = no1 // initialization
}
}
class subClass : mainClass {
var no2 : Int // new subclass storage
init(no1 : Int, no2 : Int) {
self.no2 = no2 // initialization
super.init(no1:no1) // redirect to superclass
}
}
let res = mainClass(no1: 10)
let print = subClass(no1: 10, no2: 20)
println("res is: (res.no1)")
println("res is: (print.no1)")
println("res is: (print.no2)")
当我们使用 playground 运行上面的程序,得到以下结果。
res is: 10
res is: 10
res is: 20
程序便捷的初始化
复制代码class mainClass {
var no1 : Int // local storage
init(no1 : Int) {
self.no1 = no1 // initialization
}
}
class subClass : mainClass {
var no2 : Int
init(no1 : Int, no2 : Int) {
self.no2 = no2
super.init(no1:no1)
}
// Requires only one parameter for convenient method
override convenience init(no1: Int) {
self.init(no1:no1, no2:0)
}
}
let res = mainClass(no1: 20)
let print = subClass(no1: 30, no2: 50)









