[Swfit] 상속

YuJin Lee·2022년 7월 7일
0
post-thumbnail

Override

  • 부모(Super class) 클래스로부터 상속받는 메서드/프로퍼티를 자식(Sub class) 클래스에서 재정의하여 사용하는 것
  • 부모 클래스의 속성을 자식 클래스에서 사용하고 싶을 때에는 super 키워드를 사용해 부모 클래스의 함수를 불러주면 됨
  • 자식 클래스에서 재정의 하고자 하는 프로퍼티는 부모 클래스의 이름과 타입이 일치해야 함
  • 프로퍼티 옵저버 추가도 가능
  • 재정의 할 수 없도록 하기 위해선 부모 클래스에서 프로퍼티 / 함수명 앞에 final 키워드를 앞에 붙여주면 됨
class Vehicle {
	var currentSpeed = 0.0
    var description: String {
    	return "traveling at \(currentSpeed) miles per hour"
    }
	func makeNoise() {
    	print("sound on")
    }
 }
 
 
class Train: Vehicle {
	override func makeNoise() {
    	super.makeNoise()
        print("choo choo")
    }
}


class Car: Vehicle {
	var gear = 1
    override var description: String {
    	return super.description + " in gear\(gear)"
    }
}


class AutomaticCar: Car {
	override var currnetSpeed: Double {
    	didSet {
        	gear = Int(currentSpeed / 10) + 1
        }
    }
}
profile
느리더라도 꾸준히

0개의 댓글