부모 클래스 = 상위 클래스 = 슈퍼 클래스 = 기본 클래스

자식클래스 = 하위 클래스 = 서브 클래스 = 파생 클래스

class Vehicle{
    var currentSpeed = 0.0
    var description:String{
        return "시간당 \\(self.currentSpeed)로 움직이는 중입니다."
    }
    
    func makeNoise(){
        
    }
}

class Bicycle: Vehicle{
    var hasBasket = false
}

let bicycle = Bicycle()
bicycle.hasBasket = true
bicycle.currentSpeed=20.0
bicycle.description

자식은 부모클래스의 기능(메소드, 프로퍼티)을 모두 사용 가능 추가 자식만의 기능을 추가하거나 부모의 기능 커스터마이징(오버라이딩) 하여 사용이 가능함

Overridng

부모 클래스의 프로퍼티, 메소드를 자식 클레스에서 다시 재정의 하는것

프로퍼티 오버라이딩

허용되는 것

  1. 저장 프로퍼티를 get, set 연산 프로퍼티로
  2. get,set → get, set
  3. get → get,set
  4. get → get

허용 불가

  1. 저장 프로퍼티를 저장 프로퍼티로
  2. 연산 프로퍼티 → 연산 프로퍼티