- 부모 클래스가 자식 클래스에게 프로퍼티나 메서드를 물려주는 것
- 부모 클래스 = super class
- 자식 클래스 = sub class
Swift 코드
class Vehicle {
var currentSpeed = 0
var description: String {
return "traveling at \(currentSpeed) miles per hour"
}
func makeNoise() {
print("Super class : speaker on")
}
}
class Bicycle : Vehicle {
var hasBasket = false
}
var bicycle = Bicycle()
bicycle.currentSpeed = 15
bicycle.currentSpeed
class Train : Vehicle {
override func makeNoise() {
super.makeNoise()
print("Train class : choo choo")
}
}
let train = Train()
train.makeNoise()
class Car : Vehicle {
var gear = 1
override var description: String {
return super.description + " in gear \(gear)"
}
}
let car = Car()
car.currentSpeed = 30
car.gear = 2
print(car.description)
class AutomaticCar : Car {
override var currentSpeed: Int {
didSet {
gear = Int(currentSpeed/10)+1
}
}
}
let automatic = AutomaticCar()
automatic.currentSpeed = 35
print("AutomaticCar : \(automatic.description)")
- sub class 에 따로 선언하지 않아도, super class의 프로퍼티나 메서드를 참조 할 수 있다.
- super 키워드를 통해 super class의 프로퍼티나 메서드를 호출할 수 있다.
- final 키워드를 통해 오버라이딩을 금지 시킬 수 있다.