[typescript] 추상 클래스를 활용한 다형성 구현 방법
다형성은 객체 지향 프로그래밍 언어에서 중요한 개념 중 하나입니다. TypeScript에서는 추상 클래스를 활용하여 다형성을 구현할 수 있습니다.
추상 클래스란?
추상 클래스는 인스턴스를 직접 생성할 수 없는 클래스로, 일반적으로 상속을 통해 파생 클래스에서 구현되는 메서드를 정의하는 데 사용됩니다.
abstract class Animal {
abstract makeSound(): void;
}
class Dog extends Animal {
makeSound() {
console.log('멍멍');
}
}
class Cat extends Animal {
makeSound() {
console.log('야옹');
}
}
위 예제에서 Animal 클래스는 추상 클래스이며 makeSound 메서드를 가지고 있습니다. Dog와 Cat 클래스는 Animal 클래스를 상속받아 makeSound 메서드를 구현합니다.
추상 클래스를 이용한 다형성 구현
이제 Animal 클래스를 이용하여 다형성을 구현해보겠습니다.
function performSound(animal: Animal) {
animal.makeSound();
}
const dog = new Dog();
const cat = new Cat();
performSound(dog); // 출력: 멍멍
performSound(cat); // 출력: 야옹
performSound 함수는 Animal 타입을 매개변수로 받아 해당 동물의 소리를 출력하는 역할을 합니다. 이 함수를 이용하면 Dog나 Cat 객체를 전달하여 각 동물의 소리를 다형적으로 출력할 수 있습니다.
결론
TypeScript에서 추상 클래스를 활용하여 다형성을 구현하는 방법에 대해 알아보았습니다. 추상 클래스를 이용하면 공통적인 특징을 가진 객체들을 효율적으로 관리할 수 있으며, 코드의 가독성과 유지보수성을 높일 수 있습니다.
참고문헌: