Overriding a Property

當然,繼承最重要的一點就在 override,重新定義父類別的 methods。我們建立一個新的 class Car 繼承 Vehicle

class Car: Vehicle {
   var speed = 0.0
   init() {
       super.init()
       numberOfWheels = 4
   }
   var description: String {
   }
}

我們發現 Car classdescription 已經在 Vehicle 定義過了。因此我們可以利用 Swift 的關鍵字 override,定義此 method 是要被修改的:

class Car: Vehicle {
   var speed = 0.0
   init() {
       super.init()
       numberOfWheels = 4
   }
   override var description: String {
   }
}

最後我們可以重新實作 description ,並建立 Car 的物件:

class Car: Vehicle {
   var speed = 0.0
   init() {
       super.init()
       numberOfWheels = 4
   }
   override var description: String {
       return super.description + ", \(speed) mph"
   }
}

let myCar = Car()

println(myCar.description)
// 4 wheels, 0.0 mph

myCar.speed = 35.0

println(myCar.description)
// 4 wheels, 35.0 mph

另外,有時候,我們想要知道「有哪些 properties 改變」,在什麼時候改變的,這時候就可以用到 Property Observers 的特性!

下一篇: Property Observers