내일배움캠프 앱개발 iOS 트랙 본캠프 1주차
Today I Learned
성취
- 오늘의 나는 무엇을 했는지
- 상속 Inheritance 과 재정의 Overriding 에 대해 공부
- 프로퍼티 감시자(옵저버) Property Observer 에 대해 공부
개선
- 어떤 문제를 겪었는지, 어떻게 해결할 것인지
- 스위프트에서 중요한 개념인 상속에 대해 공부했다. 이전에 자바할때 고생을 해서 그런가 상속 개념 자체가 어렵진 않았다
- 그러나 용법이 다른 부분이 많아서 그런 부분을 중심적으로 파악했다
- 공식문서의 워딩이 이해하기 힘들어서, 이미 파악한 뒤 정리해서 기록한 다른 개발자분들의 블로그를 많이 읽었다
학습
- 나는 어떤 것을 배웠는지
- 상속 (Sub-Classing)이란,
- 어떤 한 클래스가 다른 클래스로부터 프로퍼티, 메서드를 전달(물려)받는것을 의미해요
- 멤버를 물려받은 클래스는 sub class, 물려 준 상위 클래스를 super class 라고 부릅니다
- 스위프트에서는 오로지 Class 만 가능하고, 다중 상속이 불가능(= 단일 상속)해요
- 상속을 받은 서브 클래스는 슈퍼 클래스의 모든 요소를 사용할 수 있어요
- 재정의 / 오버라이딩 (Overriding)
- 서브 클래스가 물려받은 멤버, 즉 슈퍼 클래스로부터 전달받은 프로퍼티와 메서드를 수정해서 사용하는 것(다시 구현하는 것)을 의미해요
- 연산 프로퍼티는 get만 가지고 있다면 get만 재정의 / get,set 둘 다 재정의 할 수 있지만!! 슈퍼 클래스에서부터 get과 set을 전부 갖고있는 연산 프로퍼티를 서브 클래스에서 get-only로 사용할 수는 없어요
- 재정의를 방지하고 싶다면, 슈퍼 클래스에서 프로퍼티, 메서드를 선언할 때 맨 앞에 이런 키워드를 붙이면 돼요
- final
- static
- final class
- 맨 앞에 class 키워드를 붙이는 경우에는 재정의 할 수 있어요
// 오버라이딩 가능
func selfIntroduce() {
print("My name is \(name)!")
}
// 오버라이딩 불가능
final func sayHello() {
print("hello~")
}
// 오버라이딩 불가능
static func staticMethod() {
print("type method - static")
}
// 오버라이딩 가능
class func classMethod() {
print("type method - class")
}
// 오버라이딩 불가능
final class func finalClassMethod() {
print("type method - final class")
}
더 자세한 필기🔻
- 프로퍼티 감시자 Property Observer
- 프로퍼티의 값이 변할 때 특정 동작을 수행해요
- let으로 선언된 프로퍼티에는 사용할 수 없어요. 애초에, 상수는 초기화를 다시 할 수 없기 때문에 못쓰는게 맞습니다🧐
더 자세한 필기🔻
'TIL' 카테고리의 다른 글
[TIL] 2023.11.23 | 고차함수 filter(_:) (0) | 2023.11.23 |
---|---|
[TIL] 2023.11.22 | Git, Github (0) | 2023.11.22 |
[TIL] 2023.11.20 | ARC, 저장/연산 프로퍼티 (1) | 2023.11.20 |
[TIL] 2023.11.18 | 알고리즘 (0) | 2023.11.18 |
[TIL] 2023.11.17 | Git, GitHub (0) | 2023.11.17 |