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