클래스 오버라이딩(Class overriding) 간단한 BMW 코드로 이해하기

Instant Coffee·2021년 5월 20일
0

JS 문법

목록 보기
7/9
post-thumbnail
post-custom-banner
class Car {  // 1번
  constructor(color){
    this.color = color;
    this.wheels = 4;
  }
  drive(){
    console.log("Driving..")
  }
  stop(){
    console.log("Stop!")
  }
}
class Bmw extends Car { // 2번
  constructor(color){ //2번
    super(color); // 2번
    this.navigation = 1;
  }
  stop(){
    super();           // "Stop!" // 3번
    console.log("OFF") // "OFF"  // 3번
  }
  park(){
    console.log("Parking")
  }
}

1번, 클래스(class)는 새로 추가 된 문법으로 기존의 클래스 문법에서 new 생성자를 쓰지 않고 할당이 되어버려서 undefined 값으로 할당되어 오류를 찾을 수 없었던 단점을 보완 해준다.

2번, extends를 통해 부모클래스의 프로퍼티를 상속받을 수 있다.
constructor(가져올키값)
super(가져올키값)

3번, 메소드 오버라이딩 (Method overriding)
super()를 이용하여 부모의 메소드를 가져와 사용한다.
동일한 이름으로 메소드를 재정의하면, 부모의 메소드를 덮어 쓰게 된다.

profile
DevelDope 不狂不及 성장하는 개발로그
post-custom-banner

0개의 댓글