Swift에서의 상속은 다른 언어와 비슷하다.
Inheritance
- Base Class
- 다른 class로부터 상속받지 않은 class
- NSObject 상속 받을 필요 없음
- Objective-C의 경우 run-time에 필요한 모든 동작들의 기본이 NSObject에 구현되어 있음
- Objective-C로 구현된 framework와 맞물려 동작하는 경우 NSObject를 상속 받아야 할 경우도 있음
NSCoding
Overriding property
- superclass의 getter, setter 변경 가능
- observer 추가 가능
- read-only -> read-write O
- read-write -> read-only 불가능
class Car: Vehicle { var gear = 1 override var description: String { return super.description + "in gear" } }
preventing overrides
final키워드를 통해 상속이 불가능하게 할 수 있음- method, property, subscript, class
- Static Dispatch 때문에 컴파일 속도가 더 빨라질 수 있음