[typescript] 클래스 내에서 protected 접근 제어자 사용하기

클래스 내에서 protected 접근 제어자를 사용하여 멤버 변수와 메서드를 정의하고, 상속받은 클래스 내에서만 접근할 수 있도록 설정할 수 있습니다.

protected 키워드 사용하기

class Animal {
    protected name: string;

    protected constructor(name: string) {
        this.name = name;
    }
}

class Dog extends Animal {
    private breed: string;

    constructor(name: string, breed: string) {
        super(name);
        this.breed = breed;
    }

    public displayDetails() {
        // 상속받은 name 멤버 변수에 접근 가능
        console.log(`Name: ${this.name}, Breed: ${this.breed}`);
    }
}

const dog = new Dog("Buddy", "Labrador");
dog.displayDetails();

위 코드에서 Animal 클래스의 name 멤버 변수와 생성자는 protected로 선언되어 있습니다. Dog 클래스에서 Animal 클래스를 상속받아 name 멤버 변수에 접근할 수 있습니다. 이것은 protected 접근 제어자가 부모 클래스와 그 클래스를 상속받은 자식 클래스에서만 접근할 수 있게 하기 때문입니다.

결론

protected 접근 제어자를 사용하여 상속 관계에 있는 클래스 간에 멤버 변수와 메서드에 접근을 제한할 수 있습니다. 이를 통해 클래스의 내부 동작을 보호하고, 안정성을 유지할 수 있습니다.

참고 자료: