한 클래스가 가지고 있는 프로퍼티와 메소드를 다른 클래스에게 그대로 승계해주는것 상속은 Swift에서 클래스를 다른 타입과 차별화 하는 기본 동작입니다.
: 아무것도 상속받지 않은 클래스 → 이때 프로토콜을 채택하는 경우 또한 기본 클래스라는 것을 주의하자!
⇒ 형태로 따졌을 때 : 뒤에 프로토콜이 아닌 클래스가 오지 않는 클래스
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라는 클래스는
⇒ 서브클래스에서 슈퍼 클래스의 모든 프로퍼티와 메소드를 갖고, 새로운 멤버들을 추가, 변경할 수 있는 과정이 바로 상속