모든 자식 클래스에서 반드시 구현하도록 강제하는 이니셜라이저
필수 초기화가 필요할때 사용한다.
init 키워드 앞에 required 리콰이어드 키워드를 사용
재정의 해야한다.
슈퍼클래스와 동일한 이니셜라이저를 서브클래스에서 구현하는것은 오버라이딩
오버라이딩 키워드 추가
반드시 재정의 해야함
오버라이드 기능을 기본적으로 포함하고있음
모든속성이 기본값을 가지고 있고 이니셜라이저를 직접 구현하지 않았기떄문에 상속
: 모든 subclass에게 특정 initializer의 구현을 강제화할 목적으로 사용하는 것이 required initializer이다. super class의 required initializer는 무조건 구현해야 한다.
class SomeClass {
required init() {
}
}
subclass 에서도 'required' 키워드를 붙여줘야 한다. 그래야 subclass의 subclass에서도 required initializer의 구현을 강제화할 수 있기 때문이다. required initializer를 override 할 때에는 'override' 키워드는 붙이지 않는다.
class SomeSubclass: SomeClass {
required init() {
}
}
*단, 자동으로 super class의 initializer들을 상속받게 되는 경우에는 명시적으로 super class의 required initializer를 구현하지 않아도 된다.(예를들어, sub class의 stored property 들이 default 값을 가지고 있거나 stored property가 없어서 custom initializer가 필요없는 경우에 실제로 custom initializer를 제공하지 않은 경우.)
'Swift > Swift문법' 카테고리의 다른 글
| Swift문법 - 이니셜라이저 델리게이션 (0) | 2023.05.21 |
|---|---|
| Swift문법 - Class Initializer (0) | 2023.05.07 |
| Swift문법 - Memberwise Initialer (0) | 2023.04.30 |
| Swift문법 - Inheritance (1) | 2023.04.23 |
| Swift문법 - Method (0) | 2023.04.16 |