Swift 기초 문법 - 50. open

정성윤·2023년 8월 18일
0

Swift 이론

목록 보기
53/64

스위프트에서의 open은 접근 제어 수준 중 하나로, 클래스와 클래스 멤버를 상속받는 모듈 외부에서도 접근할 수 있도록 해주는 키워드입니다.

open 접근 제어 수준은 가장 높은 접근 권한을 제공하며, 외부 모듈에서 클래스를 상속하고 해당 클래스의 메서드와 프로퍼티를 오버라이드할 수 있도록 허용합니다.

open class Vehicle {
    open var speed: Double
    
    public init(speed: Double) {
        self.speed = speed
    }
    
    open func startEngine() {
        print("Engine started")
    }
    
    open func stopEngine() {
        print("Engine stopped")
    }
}

// Vehicle 클래스를 상속받는 Car 클래스
open class Car: Vehicle {
    open var brand: String
    
    public init(speed: Double, brand: String) {
        self.brand = brand
        super.init(speed: speed)
    }
    
    open override func startEngine() {
        print("Car engine started")
    }
    
    open override func stopEngine() {
        print("Car engine stopped")
    }
}

Vehicle 클래스와 Car 클래스는 모두 open 접근 제어 수준으로 선언되었습니다.
선언된 클래스들은 다른 모듈에서 상속하거나 해당 클래스의 메서드와 프로퍼티를 오버라이드 할 수 있습니다.

open 접근 제어 수준은 상속과 오버라이딩을 위해 사용되므로, 프로젝트의 모듈을 정의할 때 신중하게 사용해야 합니다. 대부분의 경우에는 public 접근 제어 수준으로도 충분하며, 필요한 경우에만 open을 사용하여 접근 범위를 확장하는 것이 좋습니다.

참고(출처) : 개발하는 정대리, 야곰(Swift5)

profile
이유있는 스위프트 개발자

0개의 댓글