본문 바로가기

Web/TypeScript

[TypeScript] 추상클래스(Abstract Class)란 무엇이고 어떻게 쓰는걸까?

 

 

타입스크립트에서 추상 클래스는 인스턴스를 생성할 수 없는 클래스로서, 다른 클래스에서 상속하여 사용하기 위해 설계됩니다. 추상 클래스는 일반적으로 하나 이상의 추상 메서드를 포함하며, 이러한 메서드는 구현 코드가 없는 메서드로서 하위 클래스에서 구현해야 합니다.

 

 

추상 클래스는 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