본문 바로가기
Mobile/Swift

class

by 꼰대코더 2024. 2. 15.
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

 

'Mobile > Swift' 카테고리의 다른 글

struct  (0) 2024.02.15
예외처리  (0) 2024.02.14
function  (0) 2024.02.14
Loops  (0) 2024.02.14
switch  (0) 2024.02.14