1. 상속

한 클래스가 가지고 있는 프로퍼티와 메소드를 다른 클래스에게 그대로 승계해주는것 상속은 Swift에서 클래스를 다른 타입과 차별화 하는 기본 동작입니다.

1-1. 상속의 특징

1-2. 기본 클래스 & 서브 클래싱

기본 클래스

: 아무것도 상속받지 않은 클래스 → 이때 프로토콜을 채택하는 경우 또한 기본 클래스라는 것을 주의하자!

⇒ 형태로 따졌을 때 : 뒤에 프로토콜이 아닌 클래스가 오지 않는 클래스

class SoptMember {
		var name: String?
		var age: Int?
		
		func description() {
				print("저는 SOPT 회원 \\(age ?? 5)살 \\(name ?? "기요미")입니다!")
		}
}

// 프로토콜을 채택한 경우도 기본 클래스이다!
class Sopt: Hashable {
		var name: String?
		var age: Int?
}

서브 클래싱

: 기본 클래스를 기반으로 새로운 클래스를 만드는 과정

서브 클래스 이름 옆에 콜론(:)을 쓰고 가장 먼저 상속 받고자 하는 슈퍼 클래스의 이름을 쓴다.

class PartLeader: SoptMember {
		var part: String?

}

let seungchan: PartLeader = .init(part: "iOS")
seungchan.name = "김승찬"
seungchan.age = 500
seungchan.description() // 저는 SOPT 회원 500살 김승찬입니다!

PartLeader라는 클래스는

⇒ 서브클래스에서 슈퍼 클래스의 모든 프로퍼티와 메소드를 갖고, 새로운 멤버들을 추가, 변경할 수 있는 과정이 바로 상속