Jupyo's Daily Story
final 본문
728x90
반응형
Swift에서 final 키워드는 클래스, 메서드, 프로퍼티 또는 서브스크립트에 사용되며, 상속과 오버라이딩을 방지하는 역할을 합니다.
이 키워드를 사용하면 특정 기능을 더 이상 변경되지 않도록 보호할 수 있습니다.
final의 사용
1. 클래스에 적용
- 클래스에 final을 사용하면 해당 클래스를 상속받아 서브클래스를 만들 수 없습니다.
final class Animal {
var name: String
init(name: String) {
self.name = name
}
}
// 이 경우 서브클래싱이 불가능함
// class Dog: Animal {} // 오류 발생
2. 메서드에 적용
- 클래스의 특정 메서드에 final을 사용하면 서브클래스에서 해당 메서드를 오버라이드할 수 없습니다.
class Animal {
final func makeSound() {
print("Animal makes sound")
}
}
class Dog: Animal {
// func makeSound() { } // 오류 발생, 오버라이딩 불가능
}
3. 프로퍼티와 서브스크립트에 적용
- 프로퍼티나 서브스크립트에 final을 사용하면 서브클래스에서 이를 재정의할 수 없습니다.
class Animal {
final var legs: Int = 4
}
class Dog: Animal {
// override var legs: Int { return 2 } // 오류 발생, 재정의 불가능
}
final을 사용하는 이유
- 성능향상: 컴파일러는 final 키워드를 보고 해당 메서드나 클래스가 변경되지 않는다는 것을 알 수 있어 성능 최적화를 할 수 있습니다.
- 의도 명확화: 클래스나 메서드를 상속 또는 오버라이드하지 않겠다는 의도를 명확히 전달합니다.
- 안전성 강화: 코드에서 특정 기능이 수정되거나 예상치 못한 동작을 방지하는 데 도움이 됩니다.
요약
- final 키워드는 상속과 오버라이드를 방지하는 데 사용된다.
- 클래스에 적용하면 서브클래스 생성이 불가능해진다.
- 메서드, 프로퍼티, 서브스크립트에 적용하면 오버라이딩이 불가능해진다.
- 성능 최적화와 코드 안정성을 높이기 위해 사용된다.
반응형
'Swift' 카테고리의 다른 글
lazy (2) | 2022.11.24 |
---|---|
접근제어(Access Control) (0) | 2022.11.24 |
포맷 지정자 (0) | 2022.11.18 |
[문자열] 이메일 검증하기 (0) | 2022.11.17 |
@dynamicCallable (0) | 2021.04.07 |