[Swift 기초] - 클래스의 상속

justdotheg·2023년 10월 9일
0
post-thumbnail

목차
1. 상속 - Subclassing(서브클래싱)
2. 상속 - Overriding(오버라이딩)
3. 예시로 살펴보자

1. 상속 - Subclassing(서브클래싱)

  • Subclassing(서브클래싱) - 슈퍼클래스의 속성들을 그대로 서브 클래스에 이어받는 것
  • Super class(슈퍼클래스) - 상속해주는 클래스, 부모 클래스라고도 얘기한다.
  • Sub class(서브클래스) - 상속받는 클래스, 자식클래스라고도 얘기한다.

📌 공통기능을 묶어서 슈퍼클래스로 만들고 이 기능들을 상속해서 서브클래스를 쉽게 만들 수 있다.
📌 서브 클래스에서 슈퍼 클래스의 인스턴스를 지칭하고 싶을 경우 "super" 키워드를 쓰면 된다.
📌 상속은 구조체와 클래스를 구별하는 대표적 차이점이다.

⬇️ 코드 예시

//슈퍼클래스 
class NoteBook {
	...
}

슈퍼클래스(부모) NoteBook을 상속받는 서브클래스(자식)인 MacBook을 선언하고 싶다면 아래와 같이 선언하면 된다.

//서브클래스
class MacBook: NoteBook {
	...
}

2. 상속 - Overriding(오버라이딩)

  • Overriding(오버라이딩) : 슈퍼 클래스(부모)의 펑션을 그대로 상속 받지 않고 재정의하는 것

📌 슈퍼 클래스의 펑션을 오버라이딩 하고 싶을 때는 override 키워드를 펑션 앞에 붙인다.

3. 예시로 살펴보자

✅ 슈퍼 클래스 - NoteBook

✅ 서브 클래스 - MacBook

1. 슈퍼클래스인 NoteBook의 update 펑션을 그대로 상속받지 않고 재정의 해서 사용하기 위해 override 키워드를 써서 오버라이딩하였다.
2. super는 슈퍼 클래스의 인스턴스를 지칭하므로 슈퍼클래스의 update를 호출하겠다는 뜻이다.

✅ MacBook 인스턴스 생성

1. 생성자 호출을 통해 macBook 인스턴스를 생성하였다.
2. 이후 프로퍼티 name을 초기화하고 슈퍼클래스의 펑션을 상속받은 update 펑션을 호출했다.

⬇️ 출력 결과

update 함수에서 오버라이딩한 결과가 출력되었다.

0개의 댓글