class User { let id: Int init(id: Int) { self.id = id print("User \(id): I'm alive!") } deinit { print("User \(id): I'm dead!") } } |
id : 멤버변수 init : 생성자 deinit : 종결자 |
계승 inherit
class Vehicle { let isElectric: Bool init(isElectric: Bool) { self.isElectric = isElectric } func description() { print("I'm a vehicle.") } } |
base 클래스 기본적인 기능만 구현 |
class Car: Vehicle { let isConvertible: Bool init(isElectric: Bool, isConvertible: Bool) { self.isConvertible = isConvertible super.init(isElectric: isElectric) } override func description() { print("I'm a car.") } func status() { print("working") } } |
Vehicle 를 계승한 Car Car 의 init 에서 Vehicle의 init(=super.init)도 호출 base클래스에서 정의된 func 를 재정의 할 시에는 override 키워드 let teslaX = Car(isElectric: true, isConvertible: false) teslaX.status() -> working teslaX.description() -> I'm a car |