println("res is: (res.no1)")
println("res is: (print.no1)")
println("res is: (print.no2)")
当我们使用 playground 运行上面的程序,得到以下结果。
res is: 20
res is: 30
res is: 50
初始化继承和重写
Swift 默认不允许其子类继承其超类初始化函数为成员类型。继承适用于超类初始化只能在一定程度上,这将在自动初始化程序继承进行讨论。
当用户需要具有在超类,子类中定义的初始化器,初始化函数必须由用户作为自定义实现来定义。 当重写,必须在子类到超类的使用 “override”关键字来声明。
复制代码class sides {
var corners = 4
var description: String {
return "(corners) sides"
}
}
let rectangle = sides()
println("Rectangle: (rectangle.description)")
class pentagon: sides {
override init() {
super.init()
corners = 5
}
}
let bicycle = pentagon()
println("Pentagon: (bicycle.description)")
当我们使用 playground 运行上面的程序,得到以下结果。
Rectangle: 4 sides
Pentagon: 5 sides
指定和便捷初始化在动作中
复制代码class Planet {
var name: String
init(name: String) {
self.name = name
}
convenience init() {
self.init(name: "[No Planets]")
}
}
let plName = Planet(name: "Mercury")
println("Planet name is: (plName.name)")
let noplName = Planet()
println("No Planets like that: (noplName.name)")
class planets: Planet {
var count: Int








