[swift] 서브클래싱 시의 접근 제어 설정 방법
Swift에서는 open
, public
, internal
, fileprivate
, private
다섯 가지의 접근 수준이 있습니다.
open
과public
은 모듈 외부까지 접근이 가능하며, 서브클래스에서 오버라이딩할 수 있습니다.internal
은 같은 모듈 내에서만 접근 가능합니다.fileprivate
은 같은 파일 내에서만 접근 가능합니다.private
은 해당 선언이 포함된 범위(주로 클래스나 익스텐션) 내에서만 접근 가능합니다.
예를 들어, 다음과 같이 open
을 사용하여 부모 클래스의 메서드를 서브클래스에서 오버라이드할 수 있습니다.
open class Parent {
open func someMethod() {
print("Do something")
}
}
class Child: Parent {
override func someMethod() {
super.someMethod()
print("Do something else")
}
}
Apple의 공식 문서를 참고하여 더 자세한 내용을 확인할 수 있습니다: