반응형
상속은 클래스를 정의할 때 다른 클래스의 속성과 메소드를 그대로 가져와 사용하는 것으로 클래스를 다른 사용자 정의 자료형과 구분하는 대표적인 특징입니다. 클래스를 상속하여 새로운 클래스를 정의하는 것을 서브클래스(Subclassing)이라고 합니다. 클래스에 새로운 속성과 메소드를 추가하여 기능을 확정하거나 기존 클래스의 동작을 변경하고 싶을 때 서브클래싱을 활용합니다.
- Class Hierachy : 클래서 상속 관계 계층
- Root Class : 최상위 클래스
- Super Class : 상위 클래스 or Parent Class : 부모 클래스
- Subclass : 하위 클래스 or Child Class : 자식 클래스
- Base Class : 기반 클래스
- Derived Class : 파생 클래스
* Swift는 다중 상속을 지원하지 않음
class 클래스 이름 : 상위 클래스 이름 {
}
// 클래스 상속 금지 final
final class C {
}
import Foundation
class A {
var name : String
var age : Int
init(name : String, age : Int) {
self.name = name
self.age = age
}
func doPublic() {
print("Hello Public \(name)")
doPrivate()
}
private func doPrivate() {
print("Hello Private")
}
}
class B : A {
var nickName : String?
init(name : String, nickName : String? = nil) {
self.nickName = nickName
super.init(name : name, age : -1)
}
func callNickName() {
if let name = nickName {
print("my nickName is , \(name)")
} else {
print("My name is \(name)")
}
}
}
let a = A(name: "john", age: 30)
let name = a.name
print(name)
a.doPublic()
let b = B(name : "sam", nickName : nil)
b.callNickName()
a.doPublic()
let bb = B(name : "sam bb", nickName: "dog")
bb.callNickName()
// 실행 결과
john
Hello Public john
Hello Private
My name is sam
Hello Public john
Hello Private
my nickName is , dog
* 위 샘플은 macOS Command Line Tool 에서 제작 및 테스트한 코드임 (Swift 5)
반응형
'프로그램 개발해서 돈벌기 > iOS' 카테고리의 다른 글
[SwiftUI] 생성과 뷰 결합 (애플 튜토리얼 대략 설명) (0) | 2022.10.26 |
---|---|
[tvOS][SwiftUI] 기본 샘플 앱 설명 (0) | 2022.10.25 |
[Swift] 튜플 (Tuple) (0) | 2022.10.13 |
[Swift] 클로저 (Closure) (0) | 2022.10.12 |
[swift] 값 형식과 참조 형식 (0) | 2022.10.11 |
댓글