class Vehicle {
var use: String = "No use"
var speed: Int = 0
var producer: String = "No producer"
var usedYear: Int = 0
var basicInfo: String {
return "use:\(use),speed:\(speed),producer:\(producer)"
}
func description(){
print("Vehicle's description is:")
print(basicInfo)
}
}
let train = Vehicle()
train.use = "Common"
train.speed = 60
train.producer = "CRRC"
train.usedYear = 3
train.description()
class Car: Vehicle {
var owner: String = "No owner"
var license: String = "No license"
func propertyTransfer(newOwner: String){
owner = newOwner
print("The new owner is \(owner)")
}
override func description() {
print("Car's description is:")
print("use:\(use),speed:\(speed),producer:\(producer),usedYear:\(usedYear),owner:\(owner),license:\(license)")
}
override var basicInfo: String {
return super.basicInfo + " owner:\(owner),license:\(license)"
}
override var usedYear: Int {
didSet {
print("Used Year was changed from \(oldValue) to \(usedYear)")
}
willSet {
print("Used Year will be changed to \(newValue)")
}
}
}
let myCar = Car()
myCar.owner = "Tommy"
myCar.license = "BJ0515G"
myCar.use = "Personal"
myCar.speed = 120
myCar.producer = "Tesla"
myCar.usedYear = 6
myCar.description()
myCar.basicInfo
myCar.usedYear = 7