안녕하세요 이웃님들~ 메소드 게시글에 이어서 이번 게시글에서는 상속에 대해 다루어 볼건데요!
오늘도 잘 따라오실 준비 되셨나요? 바로 출발하겠습니다!
상속(Inheritance)의 대한 기본 개념부터 잡고 갈게요~
클래스는 메소드, 프로퍼티와 다른 특징(characteristics)을 다른 클래스로 부터 상속할 수 있습니다.
이것이 Swift에서 클래스가 다른 타입과 구분되는 근본적인 요소입니다!
클래스에서는 저장된 프로퍼티/계산된 프로퍼티와 상관없이 상속받은 프로퍼티에 프로퍼티 옵저버를 설정해서 값 설정에 반응이 가능합니다!
하나하나 살펴보도록 할게요~!
스위프트에서 상속의 특징입니다!
- 구조체는 불가능하고, 클래스에는 가능하다.
- 자식 클래스가 부모클래스로부터 기능을 물려받는것
- 상속 받은 클래스도 새로운 자식 클래스에게 상속 가능
- 단일 상속만 가능
종류는 크게 두 가지가 있는데요. 바로 서브클래싱(SubClassing)과 오버라이딩(Overriding)이 있습니다.
- 서브 클래싱 -
서브클래싱을 하면 부모로 부터 성격을 상속받고 자기 자신 고유의 특성도 추가할 수 있습니다!!
- 오버라이딩 -
서브클래스에서는 부모클래스에서 상속받은 것을 재정의 할 수 있습니다!
이것을 overriding 이라 부르는데, 오버라이딩은 인스턴스 메소드, 타입 메소드, 인스턴스 프로퍼티, 타입 프로퍼티, 서브스크립트 모두에 대해 가능합니다.
오버라이드를 위해서는 다른 선언 앞에 <override>키워드를 붙여줍니다.
스위프트에서는 이 override키워드를 보면 부모에 그 정의가 있는지 확인하는 방식입니다!
1. 메소드 오버라이드
상속받은 메소드를 오버라이드 하기 위해서는 메소드 선언 앞에 override키워드를 붙이고 내용을 적어주면 됩니다~
2. 프로퍼티 오버라이드
서브클래스에서는 상속받은 저장된 프로퍼티, 계산된 프로퍼티 모두 오버라이드가 가능합니다.
오버라이드시에는 프로퍼티의 이름과 타입을 명시해야합니다.
서브클래스에서는 단순히 상속받은 특정 형의 프로퍼티가 있다는 정도만 알고 있기 때문입니다.
* 상속받은 읽기전용 프로퍼티도 getter/setter를 정의해서 읽고/쓰기가 가능한 프로퍼티로 변경해서 제공 가능합니다.
* 하지만 반대의 읽고/쓰기가 가능한 프로퍼티를 읽기전용 프로퍼티로 선언하는 것은 불가능합니다.
3. 오버라이드 방지 (Preventing Overrides)
이상 오늘 포스팅을 마치겠습니다~ 오늘 다룬 상속에 관하여 잘 이해 하셨나요?
항상 열심히 정리해서 우리 이웃님들께 알차게 알려드리는 윤기사가 되겠습니다!
오늘도 좋은 하루 보내세요~!

'Swift 기초 문법 👊' 카테고리의 다른 글
[Swift_문법] 고차함수(map, filter, reduce)에 대해 알아보자 _ 11 (0) | 2022.08.07 |
---|---|
[Swift_문법] 부족했던 내용 추가 공부하는 윤기사 _ 10 (31) | 2022.06.17 |
[Swift_문법] Methods에 대해 한번 알아보는 윤기사_8 (1) | 2022.05.31 |
[Swift_문법] Closure에 대해 진지하게 알아보는 윤기사_7 (2) | 2022.05.30 |
[Swift_문법] Struct와 Class에 대해 오랜만에 알아보는 윤기사_6 (2) | 2022.05.27 |