자바스크립트 클래스에서 다형성을 구현할 수 있나요?

자바스크립트에서 다형성을 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 상속과 메서드 오버라이딩을 이용하는 것입니다. 부모 클래스를 만들고, 자식 클래스에서 부모 클래스의 메서드를 오버라이딩하여 다른 동작을 수행하도록 할 수 있습니다.

예를 들어, 동물이라는 부모 클래스가 있고, 개와 고양이라는 자식 클래스가 있다고 가정해봅시다. 동물 클래스에는 소리를 내는 메서드인 sound가 있습니다. 개 클래스에서는 sound 메서드를 오버라이딩하여 “멍멍”이라는 소리를 내도록, 고양이 클래스에서는 “야옹”이라는 소리를 내도록 할 수 있습니다.

class Animal {
  sound() {
    console.log("소리를 내지 않습니다.");
  }
}

class Dog extends Animal {
  sound() {
    console.log("멍멍");
  }
}

class Cat extends Animal {
  sound() {
    console.log("야옹");
  }
}

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

dog.sound(); // 출력: 멍멍
cat.sound(); // 출력: 야옹

위 예제에서는 부모 클래스인 Animalsound 메서드를 자식 클래스인 DogCat에서 오버라이딩하여 다른 동작을 수행하도록 했습니다. 이를 통해 다형성을 구현하고, 상황에 맞게 적절한 동작이 수행될 수 있습니다.

자바스크립트는 동적 타입 언어이기 때문에, 타입 검사 없이 객체의 메서드를 호출할 수 있습니다. 따라서 자바스크립트에서는 상속과 메서드 오버라이딩을 통해 다형성을 구현할 수 있습니다. 다형성을 적절히 활용하면 간결하고 유연한 코드를 작성할 수 있습니다.

#자바스크립트 #다형성