타입스크립트에서 추상 클래스는 인스턴스를 생성할 수 없는 클래스로서, 다른 클래스에서 상속하여 사용하기 위해 설계됩니다. 추상 클래스는 일반적으로 하나 이상의 추상 메서드를 포함하며, 이러한 메서드는 구현 코드가 없는 메서드로서 하위 클래스에서 구현해야 합니다.
추상 클래스는 abstract 예약어를 사용하여 정의할 수 있으며, 하위 클래스에서 구현되어야 하는 추상 메서드는 abstract 키워드와 함께 메서드 이름과 파라미터를 정의합니다. 추상 클래스 내의 일반 메서드는 하위 클래스에서 오버라이드하여 구현할 수 있습니다.
예를 들어, 다음과 같은 추상 클래스를 정의할 수 있습니다.
abstract class Shape {
abstract area(): number;
}
class Circle extends Shape {
constructor(private radius: number) {
super();
}
area(): number {
return Math.PI * Math.pow(this.radius, 2);
}
}
class Square extends Shape {
constructor(private width: number) {
super();
}
area(): number {
return Math.pow(this.width, 2);
}
}
위의 예제에서는 추상 클래스 Shape을 정의하고, area 메서드를 추상 메서드로 선언합니다. 이후 Circle 및 Square 클래스에서 Shape 클래스를 상속하고, area 메서드를 구현하여 각 도형의 면적을 계산합니다.
이를 통해 추상 클래스를 사용하여 클래스 계층 구조를 정의하고, 코드를 재사용할 수 있습니다.
728x90
'Web > TypeScript' 카테고리의 다른 글
[TypeScript] 다형성(Polymorphism)과 제네릭(Generic) (0) | 2023.02.24 |
---|---|
[TypeScript] 오버로딩(OverLoading) 이란? (0) | 2023.02.24 |