본문 바로가기
nest.js

node.js(상속, 오버라이딩, super())(2024.05.20)

by goblin- 2024. 5. 20.

1. 클래스 상속 (extends)

상속은 클래스가 다른 클래스의 속성과 메서드를 물려받는 것을 의미합니다. 이를 통해 기존 코드를 재사용하고 확장할 있습니다.

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

    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Dog extends Animal {
    constructor(name, breed) {
        super(name); // 부모 클래스의 생성자를 호출
        this.breed = breed;
    }

    speak() {
        console.log(`${this.name} barks.`);
    }
}

let dog = new Dog('Rex', 'Labrador');
dog.speak(); // Rex barks.
  • extends 키워드: Dog 클래스가 Animal 클래스를 상속받도록 합니다.
  • super() 함수: 자식 클래스에서 부모 클래스의 생성자를 호출할 사용됩니다. 이를 통해 부모 클래스의 속성을 초기화할 있습니다.

2. 오버라이딩 (Overriding)

오버라이딩은 자식 클래스가 부모 클래스의 메서드를 재정의하여 사용하는 것을 의미합니다. 이를 통해 자식 클래스에 맞게 메서드의 동작을 변경할 있습니다.

 

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

    speak() {
        console.log(`${this.name} makes a noise.`);
    }
}

class Cat extends Animal {
    speak() {
        console.log(`${this.name} meows.`);
    }
}

let cat = new Cat('Whiskers');
cat.speak(); // Whiskers meows.
  • 오버라이딩된 메서드: Cat 클래스에서 speak 메서드를 재정의하여 고양이에 맞는 동작을 구현합니다.

 

요약

  • 상속 (extends): 클래스가 다른 클래스의 속성과 메서드를 상속받아 재사용.
  • super() 함수: 부모 클래스의 생성자와 메서드를 호출하여 재사용.
  • 오버라이딩 (Overriding): 자식 클래스에서 부모 클래스의 메서드를 재정의하여 사용.