반응형
class의 사용에서 상속은 중요한 개념입니다.
// 클래스의 상속
// 상속
//class childClass: parentClass {
//
//}
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는 (static의 역할 + static의 기능이 있지만 재정의 가능)
class func classMethod() {
print("type method - class")
}
}
// 상속하기
class Student: Person {
var major: String = ""
// 오버라이딩은 override 키워드를 이용한다
// 헷갈리지 않게 해주어 편리한듯 하다.
override func selfIntroduce() {
print("오버라이드 한 자기소개")
// 부모클래스의 selfIntroduce 부르기
super.selfIntroduce()
}
// class method는 재정의 할 수 있다.
override class func classMethod() {
print("override type method - class")
}
// final과 static 타입 메서드는 재정의 불가
}
// 사용 예시
let A: Person = Person()
let B: Student = Student()
A.name = "nameA"
B.name = "nameB"
B.major = "majorB"
A.selfIntroduce()
B.selfIntroduce()
Person.typeMethod()
Person.classMethod()
Student.typeMethod()
Student.classMethod()
반응형
'iOS > Swift' 카테고리의 다른 글
[Swfit] 옵셔널 체이닝 (0) | 2022.01.24 |
---|---|
[Swift] 클래스의 생성자와 소멸자 (0) | 2022.01.24 |
[Swift] 클로저 (0) | 2022.01.23 |
[Swift] 열거형 (0) | 2022.01.23 |
[Swift] 구조체, 클래스, 프로퍼티, 프로퍼티 감시자 (0) | 2022.01.22 |