/**
用final关键字来防止重写
final,最后的,最终的;决定性的;不可更改的
final 修饰类的话,表示这个类不可以被继承。
如果修饰属性或者方法,表示相应的属性或者方法不能被重写。
*/
class Observer {
// final 加上
var storeProperty: Int = 0 {
willSet {
print("storeProperty father will Set")
}
didSet {
print("storeProperty father did Set")
}
}
// final
// 不能给计算属性设定属性观察器
var computeProperty: Int {
get {
return 0
}
set {
print("Do nothing!")
}
}
//final
func dodododtest() -> Void {
print("dadadadadaddadaad")
}
}
class ChildOfObserver: Observer {
// 可以重写父类中变量存储属性
override var storeProperty: Int {
willSet {
print("storeProperty will Set")
}
didSet {
print("storeProperty did Set")
}
}
// 可以重写父类中的计算属性的属性观察器
override var computeProperty: Int {
willSet {
print("computeProperty will Set")
}
didSet {
print("computeProperty did Set")
}
}
override func dodododtest() {
}
}
let co = ChildOfObserver.init()
co.storeProperty = 10