[iOS][Swift] Class Overriding Rules - 클래스 재정의 규칙 정리
대원칙:
- 저장 속성은 재정의 할 수 없다.
- 메서드는 재정의 가능하지만, 기능 확장만 허용된다.
Stored Property - 저장속성:
- 저장 속성의 재정의는 메모리 구조상 불가능하다.
- 그러나 메서드 형태로 추가는 가능하다.
- 계산 속성 형태로 재정의 가능하다.
- 속성 감시자 형태로도 재정의 가능하다.
Computed Property - 계산속성:
- 계산 속성의 재정의는 메서드를 대체하는 형태로 가능하다.
- 기능을 확장하는 방식으로만 재정의 가능하다.
- 읽기만 가능한 속성을 읽기/쓰기 속성으로 확장 가능하다.
- 읽기/쓰기 속성을 읽기만 가능한 속성으로 변경하는 것은 불가능하다.
- 속성 감시자를 추가하는 재정의도 가능하다.
Initializer- 생성자:
- 생성자는 기본적으로 상속되지 않는다.
- 서브클래스는 상위 클래스의 지정생성자와 서브클래스의 저장 속성을 고려하여 구현해야 한다.
- 일부 경우에는 지정생성자나 편의생성자가 자동으로 상속될 수 있다.
Method- 메서드:
- 메서드는 상위 클래스의 구현을 대체하거나 변형하여 재정의 할 수 있다.
- 상위 클래스의 메서드를 호출할 경우 주의가 필요하다.