[javascript] 상속과 다형성의 개념
JavaScript는 객체 지향 프로그래밍 언어이며, 상속과 다형성과 같은 객체 지향 개념을 지원합니다. 이 개념들은 코드 구조화와 재사용을 도와주며, 프로그램의 유지 보수성을 향상시킵니다.
상속 (Inheritance)
상속은 객체 지향 프로그래밍에서 사용되는 핵심 개념으로, 부모 클래스의 특성과 메서드를 자식 클래스가 상속받아 재사용할 수 있게 합니다.
다음은 JavaScript에서 상속을 구현하는 예시 코드입니다.
class Animal {
constructor(name) {
this.name = name;
}
makeSound() {
console.log('Animal sound');
}
}
class Dog extends Animal {
constructor(name, breed) {
super(name);
this.breed = breed;
}
makeSound() {
console.log('Woof');
}
}
위 코드에서 Dog
클래스는 Animal
클래스를 상속하고 있습니다. Dog
클래스는 Animal
클래스의 makeSound
메서드를 오버라이딩하여 자체적인 구현으로 대체하였습니다.
다형성 (Polymorphism)
다형성은 하나의 인터페이스나 메서드가 서로 다른 목적으로 사용될 수 있는 능력을 말합니다. JavaScript에서는 다형성을 지원하며, 이는 코드의 유연성을 높여줍니다.
아래는 JavaScript에서 다형성이 활용된 예시 코드입니다.
function makeAnimalSound(animal) {
animal.makeSound();
}
const animal1 = new Animal('Unknown');
const dog1 = new Dog('Buddy', 'Golden Retriever');
makeAnimalSound(animal1); // 출력: Animal sound
makeAnimalSound(dog1); // 출력: Woof
위 코드에서 makeAnimalSound
함수는 animal
인자의 makeSound
메서드를 호출합니다. 이 함수는 Animal
객체와 Dog
객체를 인자로 받아 각 객체의 makeSound
메서드를 다형성을 통해 호출합니다.
JavaScript를 이용한 객체 지향 프로그래밍에서는 상속과 다형성 개념을 적절히 활용하여 유연하고 모듈화된 코드를 작성할 수 있습니다.
이상으로 JavaScript에서의 상속과 다형성에 대해 알아보았습니다.