13.繼承
-
重寫
1.重寫:?類可以為繼承來的實例方法溯街,類方法,實例屬性,類屬性,或下標提供?己定制的實現(xiàn)铅乡。我們把這種?為叫重寫榔幸。如果要重寫某個特性坊谁,你需要在重寫定義的前面加上 override 關鍵字 2.訪問超類的方法搔耕,屬性及下標 在合適的地方隙袁,你可以通過使用 super 前綴來訪問超類版本的方法,屬性或下標: - 在方法someMethod()的重寫實現(xiàn)中,可以通過 super.someMethod()來調用超類版本的someMethod()方法弃榨。 - 在屬性 someProperty 的 getter 或 setter 的重寫實現(xiàn)中菩收,可以通過super.someProperty 來訪問超類 版本的 someProperty 屬性。 你在重寫一個屬性時鲸睛,必須將它的名字和類型都寫出來 - 在下標的重寫實現(xiàn)中娜饵,可以通過 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 政鼠。這樣的類是不可被繼承的,試圖繼承這樣的類會導致編譯報錯队魏。