[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에서의 상속과 다형성에 대해 알아보았습니다.