1.方法的重写
需要在重写的方法前加 override。
override func makeNoise() {
print("这是子类")
}
- 在属性someProperty的 getter 或 setter 的重写实现中,可以通过super.someProperty来访问超类版本的someProperty属性。
- 在下标的重写实现中,可以通过super[someIndex]来访问超类版本中的相同下标。
2.重写属性
///相当于get方法的省略写法
override var description: String {
return "zc"+super.description
}
也可以写为可读可写的:
override var description: String {
get {
return "zc"+super.description
}
set {
currentSpeed = 20
}
}
3.重写属性观察器
- 不能为继承来的常量存储属性或者只读计算属性添加属性观察器,因为这些属性是可读的。
- 你不能同时重写setter方法和属性观察,因为你可以直接在setter方法中观察了。
4.防止重写
- 在方法前添加 final 可以防止方法被重写
- 在class前添加 final 可以防止类被继承
(例如:final var,final func,final class func,以及final subscript)。