Language/TypeScript

[TypeScript] overriding 오버라이딩

0m1n 2023. 3. 13. 23:28
728x90
반응형

오버라이딩

  • 상속 관계에 있는 부모 클래스에서 이미 정의된 메소드를 자식 클래스에서 같은 시그니쳐를 갖는 메소드로 다시 정의하는 것

 

타입스크립트에서는 상속 받은 클래스에서 부모 클래스의 메소드를 다시 구현할 수 있다. 이를 메소드 오버라이딩(method overriding)이라고 한다. 메소드 오버라이딩을 사용하면 부모 클래스의 메소드와 같은 이름을 가진 메소드를 자식 클래스에서 다시 구현할 수 있다.

아래 코드를 보자.

class Animal {
  makeSound() {
    console.log("동물이 소리를 냅니다.");
  }
}

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

const animal = new Animal();
const dog = new Dog();

animal.makeSound(); // "동물이 소리를 냅니다."
dog.makeSound(); // "멍멍"

위 예제에서 Animal 클래스에는 makeSound 메소드가 정의되어 있다. 그리고 Dog 클래스에서 Animal 클래스를 상속받아 makeSound 메소드를 오버라이딩한다.

Dog 클래스의 인스턴스에서 makeSound 메소드를 호출하면 "멍멍"이라는 문자열이 출력된다.

728x90
반응형