반응형
오버라이딩
서브클래스가 슈퍼클래스를 상속 받을 때 슈퍼클래스의 멤버들을 상속 받는다.
서브클래스는 상속 받은 멤버들을 그대로 사용할 수 있고 아니면 서브클래스 구현에 맞게 재정의를 할 수 있는데 이걸 오버라이딩 이라고 한다.
오버라이딩은 메소드, 프로퍼티, 서브스크립트, 생성자에 적용 가능하다
오버라이딩 구현
Student 클래스는 Person을 상속 받고 있으며 speak 메소드를 오버라이딩 하여 사용 하고 있다.
오버라이딩을 할 때는 override 키워드를 입력해야 한다.
class Person {
var name: String = ""
init(name: String){
self.name = name
}
func speak() {
print("Hello \(name)")
}
}
class Student: Person{
var grade: Int = 1
override func speak() {
print("Hi \(name)")
}
}
let p = Person(name: "Person")
let s = Student(name: "Student")
p.speak()
s.speak()
두 클래스의 speak 메소드를 호출하면 오버라이딩한 메시지를 출력하는걸 볼 수 있다.
또한 오버라이딩 하였다고 해서 기존 멤버가 사라지는것은 아니며, super 를 통해 슈퍼클래스의 멤버를 호출 하는 것도 가능하다.
class Student: Person{
var grade: Int = 1
override func speak() {
super.speak()
print("Hi \(name)")
}
}
반응형
'Swift & iOS' 카테고리의 다른 글
[Swift & iOS] The resource could not be loaded because the App Transport Security policy requires the use of a secure connection. 관련 에러 해결 방법 (0) | 2021.08.12 |
---|---|
[Swift & iOS]performSegue의 sender 인자로 값 전달 (0) | 2021.08.12 |
[Swift & iOS] TabBarController에 연결 된 ViewController 접근 하기 (0) | 2021.08.07 |
[Swift & iOS] CocoaPods 설치 & 사용법 (0) | 2021.08.02 |
[Swift & iOS] String Index 관련 (0) | 2021.07.15 |