从零开始自学Swift(八)
发布时间:2020-12-14 01:49:14 所属栏目:百科 来源:网络整理
导读:继承情况下子类的构造函数 /*继承*/ class MacBook { var price:Double var color:String init(price:Double,color:String){ self.price=price self.color=color }} class MacBookAir : MacBook { var weight:Double init(weight:Double){ //必须初始化子类
继承情况下子类的构造函数/*继承*/
class MacBook{
var price:Double
var color:String
init(price:Double,color:String){
self.price=price
self.color=color
}
}
class MacBookAir : MacBook{
var weight:Double
init(weight:Double){
//必须初始化子类的所有属性
self.weight=weight
//在构造函数的结尾必须调用super.init调用父类的构造方法
super.init(price: 12,color:"red")
}
}
//不能调用父类的构造函数
var oneMacBookAir=MacBookAir(weight: 12.4)
子类重写父类的构造函数/*继承*/
class MacBook{
var price:Double
var color:String
init(price:Double,color:String){
self.price=price
self.color=color
//在子类初始化的时候,这句话必定被调用
print("这是父类的构造函数")
}
}
class MacBookAir : MacBook{
var weight:Double?
init(weight:Double){
//必须初始化子类的所有属性
self.weight=weight
//在构造函数的结尾必须调用super.init调用父类的构造方法
super.init(price: 12,color:"red")
}
override init(price: Double,color: String) {
print("父类的构造函数已被重写")
self.weight=nil
//即使重写了父类的构造函数仍然需要在构造函数的结尾调用super .init
super.init(price: price,color: color)
}
func toString(){
print("价格为:(price),颜色为:(color),重量为:(weight)")
}
}
var twoMacBookAir=MacBookAir(price: 13,color: "white")
twoMacBookAir.toString()//价格为:13.0,颜色为:white,重量为:nil
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |