[typescript] 상속과 다형성의 활용
자바스크립트에서 타입스크립트로의 전환이라면, 상속과 다형성을 활용하는 것은 매우 중요합니다. 상속을 통해 코드 재사용성을 높이고, 다형성을 이용해 객체 지향적으로 코드를 구조화할 수 있습니다.
상속(Inheritance)의 활용
타입스크립트에서 상속은 extends
키워드를 사용하여 클래스간의 상속을 구현할 수 있습니다. 부모 클래스의 기능을 상속받아 자식 클래스에서 재사용할 수 있으며, 자식 클래스에서 추가적인 기능을 확장할 수 있습니다.
아래는 Animal
클래스를 상속하는 Dog
클래스의 예시입니다.
class Animal {
public name: string;
constructor(name: string) {
this.name = name;
}
public move(distance: number = 0) {
console.log(`${this.name} moved ${distance}m`);
}
}
class Dog extends Animal {
public breed: string;
constructor(name: string, breed: string) {
super(name);
this.breed = breed;
}
public makeSound() {
console.log("Woof! Woof!");
}
}
const dog = new Dog("Buddy", "Labrador");
dog.move(10);
dog.makeSound();
다형성(Polymorphism)의 활용
다형성은 상속 관계에 있는 여러 클래스들이 같은 이름의 메서드를 가지고 있지만 내부 로직이 다르게 동작하도록 하는 것을 말합니다. 이를 통해 코드의 가독성과 확장성을 높일 수 있습니다.
아래는 다형성을 활용한 예시입니다.
class Shape {
public name: string;
constructor(name: string) {
this.name = name;
}
public calculateArea(): number {
return 0;
}
}
class Circle extends Shape {
constructor(name: string) {
super(name);
}
public calculateArea(): number {
// calculate area for circle
}
}
class Square extends Shape {
constructor(name: string) {
super(name);
}
public calculateArea(): number {
// calculate area for square
}
}
function printArea(shape: Shape) {
console.log(`Area of ${shape.name}: ${shape.calculateArea()}`);
}
const circle = new Circle("Circle");
const square = new Square("Square");
printArea(circle);
printArea(square);
상속과 다형성을 적절히 활용하면, 객체 지향적인 프로그래밍을 쉽게 구현할 수 있습니다.
이상으로 상속과 다형성의 활용에 대해 알아보았습니다.감사합니다.
참고 자료: