[javascript] 다형성과 다중 상속의 차이점

자바스크립트에서, 다형성과 다중 상속은 객체지향 프로그래밍에서 중요한 개념이지만, 둘은 완전히 다른 의미를 갖습니다.

다형성 (Polymorphism)

다형성은 하나의 인터페이스나 추상 클래스를 통해 여러 가지 타입을 다룰 수 있는 능력을 의미합니다. 이는 같은 인터페이스를 구현하는 다양한 객체들을 동일한 방식으로 다룰 수 있다는 것을 의미합니다.

예를 들어, 자동차 인터페이스를 구현하는 다양한 자동차 클래스들이 있을 때, 이들을 모두 “운전”할 수 있다고 가정합니다. 이것이 다형성의 예시입니다.

class Car {
  drive() {
    console.log('Driving the car');
  }
}

class ElectricCar extends Car {
  drive() {
    console.log('Driving the electric car');
  }
}

class HybridCar extends Car {
  drive() {
    console.log('Driving the hybrid car');
  }
}

function performDriveAction(car) {
  car.drive();
}

const car1 = new Car();
const car2 = new ElectricCar();
const car3 = new HybridCar();

performDriveAction(car1); // Output: Driving the car
performDriveAction(car2); // Output: Driving the electric car
performDriveAction(car3); // Output: Driving the hybrid car

다중 상속 (Multiple Inheritance)

다중 상속은 한 클래스가 두 개 이상의 부모 클래스로부터 상속받는 것을 의미합니다. 이는 한 클래스가 여러 다른 클래스의 특징을 모두 갖게 되는 것을 의미합니다.

하지만, 자바스크립트는 기본적으로 다중 상속을 지원하지 않습니다. 대신, 믹스인(Mixin) 패턴이나 Composition(합성)을 통해 비슷한 기능을 구현할 수 있습니다.

다형성과 다중 상속은 객체지향 프로그래밍에서 각각 중요한 개념이며, 이를 이해하고 활용함으로써 보다 효율적이고 유연한 코드를 작성할 수 있습니다.

참고 자료

위의 예시 코드를 통해, 다형성과 다중 상속의 차이에 대한 이해를 높일 수 있습니다.