//声明一个基类
class vehicle {
var maxPassenger : Int = 0
var manufacturer : String!
func description() -> String {
return "max passenger is \(maxPassenger) and manufacturer is \(manufacturer)"
}
init () {
maxPassenger = 2
manufacturer = "Designed By Weasley"
}
}
//声明子类
class Bicycle : vehicle {
var numberofWheels : Int = 2
var maxSpeed : Double = 30
override init() {
super.init()
maxPassenger = 2
}
override func description() -> String {
//return "numberofWheels : \(numberofWheels) maxPassenger : \(maxPassenger) with maxSpeed : \(maxSpeed) manufacturer is \(manufacturer)"
return super.description() + ";" + "numberofWheels : \(numberofWheels) maxSpeed : \(maxSpeed)"
}
}
class LimitSpeedBicycle: Bicycle {
override var maxSpeed : Double {
get {
return super.maxSpeed
}
set {
super.maxSpeed = min(maxSpeed, 20)
}
}
}
var bicycle = Bicycle()
println(bicycle.description())
var limit = LimitSpeedBicycle()
limit.maxSpeed = 30
println(limit.maxSpeed)
class SpeedLevel: Bicycle {
var level = 1
override var maxSpeed : Double{
didSet{
level = Int(maxSpeed / 10) + 1
}
}
override func description() -> String {
return super.description() + " level is \(level)"
}
}
var aBicycle = SpeedLevel()
aBicycle.maxSpeed = 40
println(aBicycle.description())