[javascript] 다형성과 메소드 오버라이딩

자바스크립트는 다형성(polymorphism)을 지원하는 객체지향 프로그래밍 언어입니다. 다형성은 하나의 인터페이스나 기능에 대해 다양한 형태나 구현을 가질 수 있는 특성을 말합니다. 객체지향 프로그래밍에서 다형성을 구현하기 위해 메소드 오버라이딩(method overriding)이 사용됩니다.

다형성 (Polymorphism)

다형성은 하위 클래스가 상위 클래스의 메소드를 오버라이딩하거나 상속받아 사용함으로써 여러 형태로 동작할 수 있는 개념입니다. 이를 통해 코드의 재사용성이 높아지고 유지보수가 용이해집니다.

다형성은 다음과 같은 상황에서 유용하게 활용될 수 있습니다:

메소드 오버라이딩 (Method Overriding)

자바스크립트에서 메소드 오버라이딩은 하위 클래스가 상위 클래스의 메소드를 재정의하여 사용하는 것을 의미합니다. 이를 통해 하위 클래스는 상위 클래스의 메소드를 오버라이딩하여 자신의 필요에 맞게 구현할 수 있습니다.

다음은 메소드 오버라이딩의 간단한 예시입니다.

class Animal {
  makeSound() {
    console.log('Animal makes a sound');
  }
}

class Cat extends Animal {
  makeSound() {
    console.log('Meow');
  }
}

class Dog extends Animal {
  makeSound() {
    console.log('Woof');
  }
}

let cat = new Cat();
let dog = new Dog();

cat.makeSound(); // 출력: 'Meow'
dog.makeSound(); // 출력: 'Woof'

위 예시에서 Cat 클래스와 Dog 클래스는 Animal 클래스의 makeSound 메소드를 오버라이딩하여 각각 고유한 소리를 출력합니다.

마치며

다형성과 메소드 오버라이딩은 객체지향 프로그래밍에서 중요한 개념으로, 코드의 유연성과 재사용성을 높여줍니다. 이를 통해 코드의 구조를 보다 유지보수하기 쉽고 확장 가능하게 만들 수 있습니다.