베웠던 상속 개념을 적용하는 스프린트 였다
전체적인 파일의 구성은 이렇게 되어있었고 Grub 파일 먼저 작성해보자
속성은 this 로 선언해주면 되고 메소드는 constructor 밖에 선언하면 된다
class Grub {
constructor(){
this.age = 0;
this.color = 'pink'
this.food = 'jelly'
}
eat(){
return 'Mmmmmmmmm ' + this.food
}
}
module.exports = Grub;
extends 와 super을 사용해서 Grub를 상속하고 나머지 케이스를 추가해준다
const Grub = require('./Grub');
class Bee extends Grub{
// TODO..
constructor(){
super();
this.age = 5;
this.color = 'yellow';
this.job = 'Keep on growing';
}
}
module.exports = Bee;
const Bee = require('./Bee');
class HoneyMakerBee extends Bee{
constructor(){
super()
this.age = 10;
this.job = 'make honey';
this.honeyPot = 0;
}
makeHoney(){
return this.honeyPot++
}
giveHoney(){
return this.honeyPot--
}
}
const Bee = require('./Bee');
class ForagerBee extends Bee{
constructor(){
super()
this.age = 10;
this.job = 'find pollen';
this.canFly = true;
this.treasureChest = [];
}
forage(e){
return this.treasureChest.push(e)
}
}
처음에는 어떻게 손을 대야하나 어려울 수 있지만 반복하다보면 조금 쉬워진다..