iOS
[Swift] Override
Peppo
2021. 11. 11. 19:27
728x90
프로젝트를 처음 만들어봤을때
가장먼저 맞이해주는 override 많이들 보셨죠 ?
아무 생각없이 넘어갔는데
오늘은 override에 대해 한번 파봅시다!!
오버라이드 (override)
일단 공식문서의 내용을 요약해서 먼저 한번 볼까요
상위클래스로부터 상속받은 메서드, 프로퍼티들을 하위 클래스에서 재정의하는 것
살짝 알듯 말듯 하네요.
말보단 코드로 먼저 보시죠 !!
눈으로 보는것 보다 Playground에 따라 쳐보시면 이해가 더 잘갑니다
먼저 Student라는 class를 만들어볼게요.
class Student {
func sayHello() {
print("안녕 나는 학생이야")
}
}
호출을 하면 어떻게 나오는지 볼까요 ?
let student = Student()
student.sayHello()
여기에 Student 클래스를 상속 받아서 Conan 이 인사하는 하위클래스를 만들어볼게요 .
class Conan: Student {
func sayHello() {
print("내이름은 코난 탐정이져")
}
}
어떻게 뜨셨나요 ?
아래와 같은 화면이 뜨셔야 정상입니다!!
맨처음 언급했던 공식문서 내용을 다시 보면,
상속받은 메서드 프로퍼티를 재정의 하기위해서는 override가 필요합니다.
즉 이렇게 해주면 된다는거죠 ⬇
class Conan: Student {
override func sayHello() { // <-- override 추가!!
print("내이름은 코난 탐정이져")
}
}
let conan = Conan()
conan.sayHello()
// 내이름은 코난 탐정이져
추가로
도입부에서도 언급했지만
override 하면 프로젝트 생성할때
override func viewDidLoad() {
super.viewDidLoad()
}
이거 많이 보셨죠 ?
여기서 super에 대해서도 알아볼건데요!
일단 개념은 아래와 같아요!
super.메서드() // <-- super는 상위클래스를 뜻합니다!!
위에 Conan을 예시로 들었던걸 다시 응용해볼게요.
class Conan: Student {
override func sayHello() {
super.sayHello()
print("내이름은 코난 탐정이져")
}
}
let conan = Conan()
conan.sayHello()
이렇게 하면 어떻게 찍힐까요 ??
오오.. super
즉,
슈퍼클래스 (Student)의 메서드를 그대로 쓰겠다는 뜻이겠네요 !!
뷰 컨트롤러 생성하고 여러 동영상 강의를 보면서 override가 뭔지 몰라서 그냥 넘어갔는데
하나하나 공부하면서 알아가니까
아는만큼 보이는것 같아 뿌듯하네요.
아직 공부할게 정말 많지만 꾸준히 해 나가야겠습니다. 💪
이해하는데 도움이 됐어요.
728x90