13.继承
-
重写
1.重写:⼦类可以为继承来的实例方法,类方法,实例属性,类属性,或下标提供⾃己定制的实现。我们把这种⾏为叫重写。如果要重写某个特性,你需要在重写定义的前面加上 override 关键字 2.访问超类的方法,属性及下标 在合适的地方,你可以通过使用 super 前缀来访问超类版本的方法,属性或下标: - 在方法someMethod()的重写实现中,可以通过 super.someMethod()来调用超类版本的someMethod()方法。 - 在属性 someProperty 的 getter 或 setter 的重写实现中,可以通过super.someProperty 来访问超类 版本的 someProperty 属性。 你在重写一个属性时,必须将它的名字和类型都写出来 - 在下标的重写实现中,可以通过 super[someIndex] 来访问超类版本中的相同下标。 3.重写属性观察器 class AutomaticCar: Car { override var currentSpeed: Double { didSet { gear = Int(currentSpeed / 10.0) + 1 } } } 4.防止重写 你可以通过把方法,属性或下标标记为 final 来防⽌它们被重写,只需要在声明关键字前加上 final 修饰符即可(例如: final var 、 final func 、 final class func 以及final subscript )。 在关键字 class 前添加 final 修饰符( final class )来将整个类标记为 final 。这样的类是不可被继承的,试图继承这样的类会导致编译报错。