class Vehicle{
var currentSpeed = 0.0
var description:String{
return "시간당 \\(self.currentSpeed)로 움직이는 중입니다."
}
func makeNoise(){
}
}
class Car:Vehicle{
var gear = 0
var engineLevel = 0
override var currentSpeed: Double{
get{
return Double(self.engineLevel * 50)
}
set{
}
}
override var description: String{
get{
return "Car : engineLevel=\\(self.engineLevel), so currentSpeed=\\(self.currentSpeed)"
}
set{
print("New value is \\(newValue)")
}
}
}
let c:Vehicle = Car()
let 변수명:부모타입 = 자식()으로 선언가능
let 변수명:자식 = 부모() → 거꾸로 가는건 불가능
class Car : Vehicle{
}
class SUV : Car{
var fourWheel = false
}
let jeep : Vehicle = SUV()
print(jeep.fourWheel) //value of type Vehicle has no member fourWheel ERROR
jeep은 SUV로 초기화 했지만 fourWheel에 접근 불가능
자식 as 부모