[typescript] private 접근 제어자와 클래스 상속

우리는 TypeScript에서 private과 클래스 상속을 사용하여 객체지향 프로그래밍의 기본 개념을 적용할 수 있습니다. private 접근 제어자를 사용하여 클래스의 내부 상태를 보호하고, 클래스 상속을 통해 코드를 재사용하고 확장할 수 있습니다.

private 접근 제어자

private 접근 제어자를 사용하면 해당 멤버가 클래스 외부에서 접근할 수 없습니다. 이것은 멤버에 대한 직접적인 접근을 제한하고 클래스 내부에서만 사용되도록 보장합니다. 다음은 private 멤버를 가진 클래스의 예제 코드입니다.

class Person {
    private name: string;

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

    public displayName(): void {
        console.log(this.name);
    }
}

let person = new Person("John");
person.displayName();
console.log(person.name); // 에러: 'name'은 private이며 클래스 'Person' 외부에서 접근할 수 없습니다.

클래스 상속

클래스 상속은 기존 클래스를 기반으로 새로운 클래스를 만드는 개념입니다. TypeScript에서는 extends 키워드를 사용하여 클래스를 상속할 수 있습니다. 아래의 예제는 클래스 상속을 보여줍니다.

class Employee extends Person {
    private id: number;

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

    public displayEmployee(): void {
        console.log(`ID: ${this.id}, Name: ${this.name}`);
    }
}

let employee = new Employee("Jane", 123);
employee.displayEmployee();
employee.displayName(); // 에러: 'name'은 private이며 클래스 'Person' 외부에서 접근할 수 없습니다.

위의 예제에서, Employee 클래스는 Person 클래스를 상속받고, Person 클래스 내의 private 멤버에 접근할 수 없습니다. 이를 통해 코드의 안전성과 재사용성을 높일 수 있습니다.

private 접근 제어자와 클래스 상속은 TypeScript의 강력한 기능 중 하나이며, 객체지향 프로그래밍을 지원하는데 도움이 됩니다.

참고 자료