티스토리 뷰
728x90
반응형
상속을 받은 클래스에서 생성자를 만들 때는, 부모의 생성자를 호출시켜야 한다.
* 2-phase Initialization : 클래스 생성시의 두 단계 -> 보다 안정적인 코드를 작성하기 위해 지켜야 한다.
phase1. 모든 property는 initialized 되어야 한다.
(init할 때, 자식에게만 있는 sports를 먼저 지정해준 뒤 부모 init을 호출시킨다.)
phase2. phase1을 모두 끝낸 뒤에야 property와 method의 사용이 가능해진다.
- designated Initializer : 주 initializer
- convenience Initializer : 부 initializer (initializer가 너무 길때 유용하게 사용 가능 + 원하는 것만 딱 받아서 사용이 가능해짐)
* designated Initializer vs convenience Initializer
1. DL는 자진의 부모의 DL를 호출해야 한다.
2. CL는 같은 클래스의 Initializer를 꼭 하나 호출해야 한다.
3. 2번에 의해, CL는 궁극적으로 DL를 호출해야 한다.
728x90
반응형
'Swift' 카테고리의 다른 글
클로저 표현 (Closure Expressions) (0) | 2021.03.23 |
---|---|
이름 짓기 (0) | 2021.02.13 |
Inheritance (0) | 2021.01.02 |
Struct, Class 언제 무엇을 쓸까 (0) | 2020.12.28 |
Class (0) | 2020.12.28 |