반응형
Notice
Recent Posts
Recent Comments
Link
공부한 것 꼭꼭 씹어먹기
상속 본문
반응형
// 프로퍼티 오버라이드
// 프로퍼티 재정의 : 프로퍼티 자체가 아닌 프로퍼티의 getter/setter/opserver를 재정의
class Vehicle {
var currentSpeed = 0.0
var description: String {
return "traveling at \(currentSpeed) miles per hour"
}
}
class Car: Vehicle {
var gear = 1
override var currentSpeed: Double { // 상속받은 프로퍼티에 옵저버를 붙여보았다
didSet {
gear = Int(currentSpeed / 10) + 1
}
}
override var description: String { // 상속받은 프로퍼티에 setter를 변경해주었다
return super.description + " in gear \(gear)"
}
}
let car = Car()
car.currentSpeed = 30.0
car.gear = 2
print(car.description)
// 계산프로퍼티, 저장프로퍼티를 오버라이드한 프로퍼티는 getter/setter를 가질 수 있다
// subclass에서 오버라이드하고자 하는 superclass의 프로퍼티는 타입과 이름이 같아야 한다
// 부모가 read-only로 가지고 있었던 프로퍼티를 자식이 writable하게 상속받을 수 없음
// final : 만약 Vehicle 클래스의 var currentSpeed를 final var currentSpeed 이렇게 바꾸면 subclass에서 값 못바꾼다
// 만약 Vehicle 클래스 앞에 final 붙이면 아예 상속을 할 수 없음
반응형
'Swift 기초' 카테고리의 다른 글
protocol (0) | 2021.10.29 |
---|---|
타입캐스팅 : is, as (0) | 2021.10.28 |
property (0) | 2021.10.26 |
class, struct, enum (0) | 2021.10.25 |
함수 (0) | 2021.10.24 |
Comments