[typescript] 접근 제한자와 상속

이번 포스트에서는 TypeScript를 사용하여 객체지향 프로그래밍의 중요한 측면인 접근 제한자상속에 대해 알아보겠습니다.

접근 제한자 (Access Modifiers)

접근 제한자는 클래스 멤버 변수와 메소드의 접근을 제어하는 데 사용됩니다. TypeScript에서는 세 가지의 접근 제한자를 제공합니다.

1. public

기본적으로 TypeScript 클래스의 멤버 변수와 메소드는 public으로 설정됩니다. 이는 클래스 외부에서도 모두 접근 가능하다는 뜻입니다.

2. private

private 접근 제한자는 해당 멤버 변수와 메소드를 클래스 내부에서만 접근 가능하도록 합니다.

class Example {
    private secret: string;

    getSecret() {
        return this.secret;
    }
}

위의 예시에서 secret 멤버 변수는 private으로 정의되어 클래스 외부에서는 접근할 수 없습니다.

3. protected

protected 접근 제한자는 해당 멤버 변수와 메소드를 클래스 내부 및 파생 클래스에서만 접근 가능하도록 합니다.

class Animal {
    protected name: string;
}

위의 예제에서 name 멤버 변수는 protected로 정의되어 Animal 클래스를 상속받는 하위 클래스에서만 접근 가능합니다.

상속 (Inheritance)

상속은 하위 클래스가 상위 클래스의 특성을 물려받는 것을 의미합니다. TypeScript에서는 extends 키워드를 사용하여 클래스간의 상속을 구현할 수 있습니다.

class Animal {
    protected name: string;

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

class Dog extends Animal {
    private breed: string;

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

    getDetails() {
        return `${this.name} is a ${this.breed}`;
    }
}

위의 예시에서 Dog 클래스가 Animal 클래스를 상속받았습니다. super 키워드를 사용하여 상위 클래스의 생성자를 호출하고, 상위 클래스의 protected 멤버 변수에 접근할 수 있습니다.

결론

TypeScript의 접근 제한자상속을 사용하여 클래스의 구조를 효율적으로 설계할 수 있습니다. 이를 통해 코드의 가독성과 유지보수성을 향상시킬 수 있습니다. 객체지향 프로그래밍의 기본 개념을 잘 숙지하여 탄탄한 코드를 작성하는 데 도움이 될 것입니다.

이상으로 TypeScript 클래스에서의 접근 제한자와 상속에 대해 알아보았습니다. 감사합니다!

참고 자료