Override property observer
When I override the function noise , the function gets replaced by the new one. But when I override a property with an observer, the old and new value gets both executed. In playground: class Vehicle { func noise(sound: String) { println("Vehicle sound sounds like \(sound)") } } class Train: Vehicle { override func noise(sound: String) { println("A train does: \(sound)") } } Output: var oldTrain = Train() bulletTrain.noise("tjoek tjoek") // Prints: "A train does: tjoek tjoek" But when I do the same with an property with an observer: In playground: class Foo { var something: Int! { didSet {