Notice
Recent Posts
Recent Comments
Link
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

Jupyo's Daily Story

final 본문

Swift

final

JangJupyo 2022. 11. 24. 10:09
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을 사용하는 이유

  1. 성능향상: 컴파일러는 final 키워드를 보고 해당 메서드나 클래스가 변경되지 않는다는 것을 알 수 있어 성능 최적화를 할 수 있습니다.
  2. 의도 명확화: 클래스나 메서드를 상속 또는 오버라이드하지 않겠다는 의도를 명확히 전달합니다.
  3. 안전성 강화: 코드에서 특정 기능이 수정되거나 예상치 못한 동작을 방지하는 데 도움이 됩니다.

 

요약

  • 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