[typescript] 추상 클래스의 멤버 변수와 인스턴스 초기화 방법

추상 클래스는 객체지향 프로그래밍에서 중요한 개념 중 하나입니다. 이러한 클래스는 구체적인 구현을 포함하지 않고 상속받는 클래스에서 구현해야 하는 메서드와 속성들을 정의합니다. 이 글에서는 TypeScript에서 추상 클래스의 멤버 변수와 인스턴스 초기화에 대해 알아보겠습니다.

추상 클래스란?

추상 클래스는 한정된 형태의 구현을 위해 설계된 클래스입니다. 이 클래스는 단독으로 인스턴스화될 수 없으며, 하위 클래스에서 확장하고 구현해야 합니다.

TypeScript에서 추상 클래스를 정의하려면, abstract 키워드를 사용하여 클래스를 선언하고 추상 메서드나 속성을 정의해야 합니다.

abstract class Animal {
    abstract makeSound(): void;
    protected age: number;

    constructor(age: number) {
        this.age = age;
    }
}

위의 예제에서 Animal 클래스는 추상 메서드 makeSound와 보호된 속성 age를 정의하고 있습니다.

멤버 변수 초기화

TypeScript의 추상 클래스에서 멤버 변수를 초기화하는 방법 중 하나는 생성자를 사용하는 것입니다.

abstract class Animal {
    protected age: number;

    constructor(age: number) {
        this.age = age;
    }
}

위의 예제에서 Animal 클래스의 age 속성은 생성자를 통해 초기화되었습니다.

인스턴스 초기화

하위 클래스가 추상 클래스를 확장하고 생성자를 정의할 때, super 키워드를 사용하여 추상 클래스의 생성자를 호출하여 인스턴스를 초기화해야 합니다.

class Dog extends Animal {
    name: string;

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

위의 예제에서 Dog 클래스는 Animal 클래스를 확장하고, super 키워드를 사용하여 Animal 클래스의 생성자를 호출하여 age 속성을 초기화하고 있습니다.

결론

TypeScript에서 추상 클래스를 사용하여 객체지향 프로그래밍의 개념을 적극적으로 활용할 수 있습니다. 추상 클래스를 정의하고 멤버 변수 및 인스턴스를 초기화함으로써, 응용 프로그램의 유연성과 유지 관리성을 향상시킬 수 있습니다.

이상으로 TypeScript에서 추상 클래스의 멤버 변수와 인스턴스 초기화에 대한 간략한 소개를 마칩니다.

TypeScript 공식 문서

The Basics of Abstract Classes in TypeScript