[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으로 선언된 멤버인 privateProperty
와 privateMethod
는 자식 클래스에서 접근할 수 없지만, protected로 선언된 protectedProperty
와 protectedMethod
는 자식 클래스에서 접근할 수 있습니다.
참고 문헌: