[typescript] private 접근 제어자의 상속 관계에서의 활용

서론

클래스를 설계할 때 상속 관계에서 private 접근 제어자가 어떻게 동작하고 활용되는지에 대해 알아보겠습니다.

private 접근 제어자란?

private 접근 제어자는 해당 멤버가 같은 클래스 내에서만 접근이 가능하도록 제한하는 역할을 합니다. 이는 해당 멤버가 하위 클래스에서도 접근 불가능하게 됩니다.

private 접근 제어자의 상속 관계에서의 활용

private 접근 제어자는 멤버를 상속되도록 만들지 않기 위해 사용됩니다. 즉, 상위 클래스에서 private으로 선언된 멤버는 하위 클래스에서 직접 접근할 수 없습니다. 하지만 getter와 setter 메서드를 통해 간접적으로 접근할 수 있습니다.

class Parent {
  private _privateField: string;

  constructor(privateField: string) {
    this._privateField = privateField;
  }

  // Getter method
  get privateField(): string {
    return this._privateField;
  }

  // Setter method
  set privateField(value: string) {
    this._privateField = value;
  }
}

위 예제와 같이 private 접근 제어자를 사용하여 상위 클래스의 멤버를 간접적으로 접근할 수 있도록 getter와 setter 메서드를 제공할 수 있습니다.

결론

private 접근 제어자를 상속 관계에서 활용하는 것은 상위 클래스의 구현 세부사항을 하위 클래스에서 직접적으로 접근하는 것을 피하고, 캡슐화를 유지하는 데 도움을 줍니다. 하위 클래스에서 상위 클래스의 private 멤버에 접근해야 하는 경우, getter와 setter 메서드를 통해 간접적으로 접근하도록 하는 것이 좋은 방법입니다.

참고 자료