상속
class Animal {
constructor(color) {
this.color = color;
}
eat() {
console.log('먹자!');
}
sleep() {
console.log('잔다');
}
}
class Tiger extends Animal {}
const tiger = new Tiger('노랑이');
console.log(tiger);
tiger.sleep();
tiger.eat();
class Dog extends Animal {
constructor(color, ownerName) {
super(color);
this.ownerName = ownerName;
}
play() {
console.log('놀자아~!');
}
eat() {
super.eat();
console.log('강아지가 먹는다!');
}
}
const dog = new Dog('빨강이', '엘리');
console.log(dog);
dog.sleep();
dog.eat();
dog.play();
- 클래스 마다 공통된 행동 이나 속성이 있다면 상속을 사용 할 수 있다.
- 추가적으로 필요한게 있다면 함수를 추가 할 수 있다.
- 상속 주의점
자식의 생성자를 정의 하는 순간 부모의 필요한 것을 다 받아와야한다.
- 부모의 생성자를 호출 할 때는 super 키워드를 사용한다.
super -> 상속하고 있는 부모 클래스를 가리킨다
- 자식 클래스에서 부모 클래스의 있는 함수를 덮어씌우는 것을 오버라이딩 이라고 한다.