11.4Swift重写属性
/**
上⼀节课研究了如何重写⽅法,
这节课研究如何重写属性。
(4)重写属性
*/
class Father {
var storeProperty: Int = 0// 存储属性
var computeProperty: Int { // 计算属性
get {
return0
}
t {
print("In FatherClass: t\(newValue)")
}
}
}
class Child: Father {
/**
可以将⼀个⽗类的存储属性重写成计算属性,
不可以将⼀个⽗类的存储属性再重写成存储属性。
*/
override var storeProperty: Int {
get {
return0
}
t {
print("In ChildClass t: storeProperty with value \(newValue)")
}
}
/**
可以将⽗类中的技术属性重写,重写的样式也是计算属性
*/
override var computeProperty: Int {
get {
return10
}
t {
print("In ChildClass t: coputeProperty with value \(newValue)")
}
}
}
let ch = Child.init()
// 通过⼦类的对象来调⽤重写后的属性或者⽅法,肯定会调⽤⼦类中的重写版本
ch.storeProperty = 100