[typescript] 추상 클래스를 활용한 다형성 구현 방법

다형성은 객체 지향 프로그래밍 언어에서 중요한 개념 중 하나입니다. TypeScript에서는 추상 클래스를 활용하여 다형성을 구현할 수 있습니다.

추상 클래스란?

추상 클래스는 인스턴스를 직접 생성할 수 없는 클래스로, 일반적으로 상속을 통해 파생 클래스에서 구현되는 메서드를 정의하는 데 사용됩니다.

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

class Dog extends Animal {
  makeSound() {
    console.log('멍멍');
  }
}

class Cat extends Animal {
  makeSound() {
    console.log('야옹');
  }
}

위 예제에서 Animal 클래스는 추상 클래스이며 makeSound 메서드를 가지고 있습니다. DogCat 클래스는 Animal 클래스를 상속받아 makeSound 메서드를 구현합니다.

추상 클래스를 이용한 다형성 구현

이제 Animal 클래스를 이용하여 다형성을 구현해보겠습니다.

function performSound(animal: Animal) {
  animal.makeSound();
}

const dog = new Dog();
const cat = new Cat();

performSound(dog); // 출력: 멍멍
performSound(cat); // 출력: 야옹

performSound 함수는 Animal 타입을 매개변수로 받아 해당 동물의 소리를 출력하는 역할을 합니다. 이 함수를 이용하면 DogCat 객체를 전달하여 각 동물의 소리를 다형적으로 출력할 수 있습니다.

결론

TypeScript에서 추상 클래스를 활용하여 다형성을 구현하는 방법에 대해 알아보았습니다. 추상 클래스를 이용하면 공통적인 특징을 가진 객체들을 효율적으로 관리할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다.

참고문헌: