継承
目次>
サブクラス化
SomeSuperclassクラスを継承してSomeClassを作成する場合
class SomeClass: SomeSuperclass { // class definition goes here }
初期化メソッドなど、上書きする場合は、superの初期化メソッドを呼び出してから
class Bicycle: Vehicle { init() { super.init() numberOfWheels = 2 } }
SwiftからObjective-Cクラスを使う - 水夫と戯れて
メソッドのオーバーライド
overrideキーワードを使う
class Car: Vehicle { var speed: Double = 0.0 init() { super.init() maxPassengers = 5 numberOfWheels = 4 } override func description() -> String { return super.description() + "; " + "traveling at \(speed) mph" } }
スーパークラスのメソッドやプロパティ、サブスクリプトへのアクセス
super.someMethod() super.someProperty super[someIndex]
プロパティのオーバーライド
プロパティのゲッター・セッターのオーバーライド
class SpeedLimitedCar: Car { override var speed: Double { get { return super.speed } set { super.speed = min(newValue, 40.0) } } }
プロパティ監視のオーバーライド
class AutomaticCar: Car { var gear = 1 override var speed: Double { didSet { gear = Int(speed / 10.0) + 1 } } override func description() -> String { return super.description() + " in gear \(gear)" } }