[typescript] 클래스 상속과 인터페이스 구현을 사용하여 다형성을 구현하는 방법은?
다형성은 객체지향 프로그래밍에서 매우 중요한 개념입니다. TypeScript에서는 클래스 상속과 인터페이스 구현을 통해 다형성을 구현할 수 있습니다. 이를 통해 한 가지 타입으로 여러 가지 형식의 데이터를 다룰 수 있으며, 코드의 재사용성과 유지보수성을 향상시킬 수 있습니다.
클래스 상속을 사용한 다형성 구현
클래스 상속을 활용하여 다형성을 구현하는 방법은 아래와 같습니다.
class Animal {
name: string;
constructor(name: string) {
this.name = name;
}
makeSound() {
return 'Some sound';
}
}
class Dog extends Animal {
makeSound() {
return 'Woof! Woof!';
}
}
class Cat extends Animal {
makeSound() {
return 'Meow! Meow!';
}
}
let myDog: Animal = new Dog('Bobby');
let myCat: Animal = new Cat('Tom');
console.log(myDog.makeSound()); // 출력: Woof! Woof!
console.log(myCat.makeSound()); // 출력: Meow! Meow!
위 예제에서는 Animal
클래스를 상속받은 Dog
와 Cat
클래스에서 makeSound
메서드를 오버라이딩하여 다형성을 구현했습니다.
인터페이스 구현을 사용한 다형성 구현
인터페이스를 사용하여 다형성을 구현하는 방법은 아래와 같습니다.
interface Shape {
draw(): string;
}
class Circle implements Shape {
draw() {
return 'Circle is drawn';
}
}
class Rectangle implements Shape {
draw() {
return 'Rectangle is drawn';
}
}
let circle: Shape = new Circle();
let rectangle: Shape = new Rectangle();
console.log(circle.draw()); // 출력: Circle is drawn
console.log(rectangle.draw()); // 출력: Rectangle is drawn
인터페이스를 구현한 Circle
와 Rectangle
클래스에서 각각 draw
메서드를 구현하여 다형성을 실현했습니다.
다형성은 프로그램의 유연성을 높이고, 코드의 재사용성을 높여줌으로써 프로그래밍의 효율성을 증대시킵니다.
위 내용을 통해 TypeScript에서 클래스 상속과 인터페이스 구현을 사용하여 다형성을 구현하는 방법에 대해 배워보았습니다. 다형성을 통해 코드를 더 유연하고 유지보수하기 쉽게 작성할 수 있습니다.