[swift] 부모 클래스에서 private으로 선언된 속성과 메서드에 대한 상속 가능 여부

만약 부모 클래스의 private 멤버를 자식 클래스에서 사용해야 하는 경우에는 protected로 선언해야 합니다. 이렇게 하면 자식 클래스에서도 해당 멤버에 접근할 수 있습니다.

예를 들어, Swift에서 아래와 같이 부모 클래스와 자식 클래스를 정의했을 때 private과 protected의 차이를 살펴볼 수 있습니다.

class Parent {
    private var privateProperty = 10
    protected var protectedProperty = 20

    private func privateMethod() {
        print("Private method called")
    }
    protected func protectedMethod() {
        print("Protected method called")
    }
}

class Child: Parent {
    // privateProperty 및 privateMethod는 접근할 수 없지만 protectedProperty와 protectedMethod는 접근 가능
    func accessProtectedMember() {
        print(protectedProperty)
        protectedMethod()
    }
}

위의 예제에서 private으로 선언된 멤버인 privatePropertyprivateMethod는 자식 클래스에서 접근할 수 없지만, protected로 선언된 protectedPropertyprotectedMethod는 자식 클래스에서 접근할 수 있습니다.

참고 문헌: