SlideShare a Scribd company logo
swift 0x0d
interitance
문현진(arnold@css99.co.kr)
base class
class Vehicle {
var numberOfWheels: Int
var maxPassengers: Int
func description() -> String {
return “(numberOfWheels) wheels;”
+ “up to (maxPassengers) passengers”
}
init() {
numberOfWheels = 0
maxPassengers = 1
}
}
탈 것
subclassing
모든 특징(maxPassengers, numberOfWheels)
+
재정
의(init)
class = 분류
subclass = 부분집합
subclassing
class Bicycle: Vehicle {
init() {
super.init() // swift는 object-C와 다르게 생성자를
// 디폴트로 상속하지 않는다.
numberOfWheels = 2
}
}
subclassing
class Tandem: Bicycle {
init() {
super.init()
maxPassengers = 2
}
}
let tandem = Tandem()
println(“Tandem: (tandem.description())”)
// Tandem: 2 Wheels;
overriding
override = 무시하다.
상속 받은 상위 클래스의 메서드, 프로퍼티, 서브스크립트
를 ‘무시'하고 현재 클래스만의 메서드, 프로퍼티, 서브스크
립트를 사용 할 수 있다.
override 가 없는 오버라이딩 => 에러
overriding
super
상위 클래스 메서드, 프로퍼티, 서브스크립트 접근
override func someMethod() -> {
super.someMethod()
}
overriding - 메서드 오버라이딩
class Car: Vehicle {
var speed: Double = 0.0
init() {
super.init()
maxPassengers = 5
numberOfWheels = 4
}
override func description() -> String {
return super.description() + “; “ + “traveling at (speed) mph”
}
}
overriding - 프로퍼티 오버라이딩
getter, setter 오버라이딩
class SpeedLimitedCard: Car {
override var speed: Double {
get {
return super.speed
}
set {
super.speed = min(newValue, 40.0)
}
}
}
overriding - 프로퍼티 오버라이딩
관찰자 오버라이딩
class AutomaticCar: Car {
var gear = 1
override var speed: Double {
didSet {
gear = Int(speed/10.0) +1
}
}
override func description() -> String {
return super.description() + “ in gear (gear)”
}
}
overriding 방지
@final
@final var, @final func, @final class func, @final subscript

More Related Content

PDF
7 loại hình thông minh thomas armstrong
PDF
Sinh học cơ thể thực vật và động vật
PDF
Ai lay mieng phomat cua toi
PPT
Độc đố trong sản xuất shared by Nguyễn Hữu Học
PDF
Vị giám đốc một phút và xây dựng nhóm làm việc hiệu quả ken planchard dona...
PPTX
Swift 0x19 advanced operators
PPTX
Swift 0x18 access control
PPTX
Swift 0x17 generics
7 loại hình thông minh thomas armstrong
Sinh học cơ thể thực vật và động vật
Ai lay mieng phomat cua toi
Độc đố trong sản xuất shared by Nguyễn Hữu Học
Vị giám đốc một phút và xây dựng nhóm làm việc hiệu quả ken planchard dona...
Swift 0x19 advanced operators
Swift 0x18 access control
Swift 0x17 generics

More from Hyun Jin Moon (11)

PPTX
Swift 0x14 nested types
PPTX
Swift 0x12 optional chaining
PPTX
Swift 0x0e 초기화
PPTX
Swift 0x0c 서브스크립트
PPTX
Swift 0x02 기본 연산자
PPTX
Swift 0x01 환경 설정
PDF
Quick, Tree sort
PDF
Shell, merge, heap sort
PPTX
Djang Beginning 2
PPTX
Programming challange crypt_kicker
PPTX
Node.js Cloud Service Publish
Swift 0x14 nested types
Swift 0x12 optional chaining
Swift 0x0e 초기화
Swift 0x0c 서브스크립트
Swift 0x02 기본 연산자
Swift 0x01 환경 설정
Quick, Tree sort
Shell, merge, heap sort
Djang Beginning 2
Programming challange crypt_kicker
Node.js Cloud Service Publish
Ad

Swift 0x0d 상속

Editor's Notes

  • #11: NOTE 프로퍼티 관찰자는 상수 혹은 읽기 전용 프로퍼티에 추가될 수 없다. 이러한 프로퍼티 값은 다시 설정될 수 없기 때문에 오버라이드의 일부인 willSet() 혹은 didSet()을 제공하는 것은 적절치 않다. 또한 오버라이딩 설정자와 오버라이딩 프로퍼티 관찰자를 동시에 제공할 수 없다. 프로퍼티 값이 변경되는 것을 관찰하고 싶고 이미 그 프로퍼티를 위한 커스텀 설정자를 제공하고 있다면, 커스텀 설정자 안에서 값의 변화를 간단하게 관찰할 수 있다.