클래스와 추상클래스

KHW·2021년 5월 6일
0

Javascript 지식쌓기

목록 보기
37/95
post-custom-banner

추상클래스

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


추상클래스 예시

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
나의 하루를 가능한 기억하고 즐기고 후회하지말자
post-custom-banner

0개의 댓글