swift自學筆記(五)(重寫屬性、final)
阿新 • • 發佈:2019-01-31
//************重寫父類的儲存屬性***********//
class car {
var name:String = "b"
}
class trunk: car {
override var name:String {
get {
return super.name
}
set {
super.name = newValue
}
}
}
var tt = trunk()
tt.name = "tom"
//*************
class Ccircle {
var PI:Double {
return 3.14
}
}
class ccc: Ccircle {
override var PI:Double {
get {
return 55
}
set {
newValue
}
}
}
var cccc = ccc()
cccc.PI = 90
//******************總結
//子類無論是重寫父類的儲存屬性還是計算屬性,都是攔截父類的set get方法進行操作。區別是當子類重寫了父類的計算屬性的時候是無法再set方法中將newValue儲存到super的屬性中的。類屬性的重寫和重寫父類的計算屬性一樣,因為類屬性只能是計算屬性
// final的作用:被final修飾的屬性、方法、下標指令碼都不能被子類重寫