상속
- 스위프트의 상속은 클래스, 프로토콜 등에서 가능하다.
- 열거형, 구조체는 상속이 불가능하다.
- 스위프트는 다중상속을 지원하지 않는다.
- 이번 파트에서는 클래스의 상속에 대해서 알아본다.
class 이름: 상속받을 클래스 이름 {
구현부
}
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")
}
}
class Student: Person {
// 상속받은 Person 클래스에 이미 존재하므로 또 정의할 수 없다. 프로퍼티는 override도 불가능하다.
// var name: String = ""
var major: String = ""
override func selfIntroduce() {
}
override class func classMethod() {
}
// static 을 사용한 타입 메서드는 재정의 불가
// final 키워드를 사용한 메서드, 프로퍼티는 재정의 할 수 없다.
}
'# 02 > Swift' 카테고리의 다른 글
[Swift] 옵셔널 체이닝과 nil 병합 연산자 (0) | 2020.06.04 |
---|---|
[Swift] 인스턴스의 생성과 소멸 (0) | 2020.06.04 |
[Swift] 프로퍼티 감시자 (0) | 2020.06.04 |
[Swift] 프로퍼티 (0) | 2020.06.04 |
[Swift] 클로저 고급 (0) | 2020.06.04 |