[javascript] 상속 자식 객체의 동작 변경하기

JavaScript에서 객체지향 프로그래밍을 할 때, 상속을 사용하여 기존 객체의 특성을 유지하면서 새로운 동작을 추가하거나 변경할 수 있습니다. 이 글에서는 JavaScript에서 상속을 통해 자식 객체의 동작을 변경하는 방법을 살펴보겠습니다.

부모 객체 정의하기

먼저, 상속할 부모 객체를 정의합니다. 예를 들어, 아래와 같이 Animal 부모 객체를 정의할 수 있습니다.

class Animal {
  constructor(name) {
    this.name = name;
  }

  makeSound() {
    return "Some sound";
  }
}

위 코드에서 Animal 클래스는 name 속성과 makeSound 메서드를 가지고 있습니다.

자식 객체에서 부모 객체 상속받기

이어서, Animal 객체를 상속받아 새로운 동작을 추가하거나 변경할 자식 객체를 정의합니다. 아래는 Dog 자식 객체를 정의하는 예시입니다.

class Dog extends Animal {
  constructor(name, breed) {
    super(name);
    this.breed = breed;
  }

  makeSound() {
    return "Woof!";
  }

  wagTail() {
    return `${this.name} is wagging its tail`;
  }
}

Dog 클래스는 Animal 클래스를 상속받아 makeSound 메서드를 재정의하고, wagTail 메서드를 추가했습니다.

자식 객체의 동작 변경 확인하기

아래는 Dog 클래스를 사용하여 동작이 변경된 예시입니다.

const myDog = new Dog('Buddy', 'Golden Retriever');
console.log(myDog.makeSound()); // 출력: Woof!
console.log(myDog.wagTail()); // 출력: Buddy is wagging its tail

myDog 인스턴스를 생성하여 makeSoundwagTail 메서드를 호출하면, 각각 "Woof!""Buddy is wagging its tail"이 출력됨을 확인할 수 있습니다.

JavaScript에서는 상속을 통해 부모 객체의 동작을 변경하거나 확장할 수 있어, 코드를 재사용하고 유지보수를 용이하게 할 수 있습니다.

위 예시를 통해 JavaScript에서 상속을 통해 자식 객체의 동작을 변경하는 방법에 대해 알아보았습니다. 부모 객체와 자식 객체 간의 관계를 활용하여 프로그램을 더 유연하게 설계할 수 있습니다.