[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(합성)을 통해 비슷한 기능을 구현할 수 있습니다.
다형성과 다중 상속은 객체지향 프로그래밍에서 각각 중요한 개념이며, 이를 이해하고 활용함으로써 보다 효율적이고 유연한 코드를 작성할 수 있습니다.
참고 자료
위의 예시 코드를 통해, 다형성과 다중 상속의 차이에 대한 이해를 높일 수 있습니다.