[typescript] 추상 클래스에서의 함수와 메서드 정의

추상 클래스는 일반 클래스와 다르게 인스턴스를 직접적으로 생성할 수 없는 클래스입니다. 여기서는 TypeScript에서 추상 클래스 내에서 어떻게 함수와 메서드를 정의하는지 살펴보겠습니다.

추상 메서드 정의

추상 메서드는 구현을 포함하지 않는 메서드이며, 추상 클래스 내에 정의됩니다. 이러한 메서드는 파생 클래스에서 구현되어야 합니다. 다음은 추상 메서드를 정의하는 예시입니다.

abstract class Animal {
  abstract makeSound(): void;
}

위의 코드에서 makeSound 메서드는 추상 메서드로 정의되었습니다. 이 메서드는 어떤 소리를 만드는지에 대한 구체적인 구현을 포함하고 있지 않습니다. 대신 파생 클래스에서 이 메서드를 구현해야 합니다.

일반 함수 정의

추상 클래스 내에는 추상이 아닌 일반 함수를 포함시킬 수 있습니다. 이러한 함수는 추상 클래스의 인스턴스에서 직접 호출될 수 있습니다.

abstract class Animal {
  abstract makeSound(): void;

  move(distanceInMeters: number): void {
    console.log(`Animal moved ${distanceInMeters}m.`);
  }
}

위의 코드에서 move 함수는 추상이 아닌 함수로 정의되었습니다. 이 함수는 Animal 클래스의 인스턴스에서 직접 호출될 수 있으며 구현을 포함하고 있습니다.

추상 클래스 내에서 함수와 메서드를 정의하는 방법에 대해서 알아보았습니다. 이러한 추상 클래스는 상속 관계에서 유용하게 활용될 수 있습니다.