Swift 에서의 상속
- 프로토콜, 클래스에서 사용 가능
- 열거형, 구조체에서는 사용 불가
- 다중상속 지원 X
클래스에서의 상속에 대해 알아보자!
1️⃣ 상속 정의
class 이름 : 상속받을 클래스 이름 {
// 구현
}
2️⃣ 메소드 키워드 정리
class Person{
var name: String = ""
func selfIntroduce() {
print("저는 \(name) 입니다.")
}
// final 키워드 : 재정의 방지
final func sayHello() {
print("hello")
}
// 타입메서드
// 재정의 불가 타입 메서드 : static
static func typeMethod() {
print("type method - static")
}
// 재정의 가능 타입 메서드 : class
class func classMethod() {
print("type method - class")
}
// 재정의 가능한 타입메서드 class라도 final 키워드를 앞에 붙이면 재정의가 불가해짐
// 매서드 앞의 static 이나 final class는 같은 역할!
final class func finalClassMethod() {
print("type method - final class")
}
}
3️⃣ 메서드 재정의 해보기
- 재정의는 override 키워드를 통해 할 수 있다.
class Student: Person {
var major: String = ""
override func selfIntroduce() {
print("제 이름은 \(name)이고, 전공은 \(major)입니다.")
}
override class func classMethod() {
print("class를 사용하여 재정의 될 수 있는 타입 메서드")
}
}
🚫 static 이나 final class 키워드로 정의된 타입 메서드는 재정의 될 수 없음!!
Reference
- 야곰의 스위프트 기본 문법 강좌
'Swift' 카테고리의 다른 글
[Swift] 타입캐스팅 : is, as (0) | 2022.08.13 |
---|---|
[Swift] 서브스크립트 (0) | 2022.08.13 |
[Swift] 백준 : 10814 (구조체) (0) | 2022.08.02 |
[Swift] zip(_:_:) (0) | 2022.07.27 |
[Swift] 모나드 : 컨텍스트, 함수객체, 모나드 (0) | 2022.03.24 |