클래스와 추상클래스

KHW·2021년 5월 6일
0

Javascript 지식쌓기

목록 보기
37/95

추상클래스

부모 클래스에는 메소드의 시그니처만 정의해놓고 그 메소드의 실제 동작 방법은 이 메소드를 상속 받은 하위 클래스의 책임으로 위임하고 있다.


추상클래스 예시

class Animal{
  constructor(){
    this.sound();
  }
  sound(){}
}

class Dog extends Animal{
  sound(){console.log('월월')}
}

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

new Animal();

new Dog();
new Cat();

1) new Animal();

constructor를 통해 this.sound()를 진행하나 아무것도 없으므로 아무결과도 안 나타난다.

2) new Dog();

constructor를 통해 this.sound()가 실행되나 이때 this는 Dog라는 클래스이므로 Dog안에 있는 sound()가 실행되어 멍멍이 출력된다.

3) new Cat();

constructor를 통해 this.sound()가 실행되나 이때 this는 Cat라는 클래스이므로 Cat안에 있는 sound()가 실행되어 야옹이 출력된다.

  • 즉, 위에서 언급한 추상클래스의 정의처럼 부모 클래스에는 (공백의) 메소드를 정의해 놓고 실제 동작은 상속받은 Cat, Dog클래스의 책임으로 메소드를 처리한다.

추상클래스 동작하는 예시

로또

profile
나의 하루를 가능한 기억하고 즐기고 후회하지말자

0개의 댓글