가장 고귀한 곤충인 꿀벌은, 일생 동안 특정 발달 단계를 하나하나 거칩니다. 각 단계에는 꿀벌이 갖는 고유한 특징이 있습니다. 이 repository에는 다양한 종류의 꿀벌 Class가 존재합니다. 각 단계별로 꿀벌 Class가 있고, 이를 통해 class keyword를 이용한 상속을 학습합니다. (상속은 종종 subclassing 이라고 표현합니다.)

├── Grub
│ └── Bee
│ ├── HoneyMakerBee
│ └── ForagerBee

Grub.js

//의사코드
//defaultValue는 숫자 또는 문자열로 입력
//construct(){}안에 클래스 Grub의 속성 작성
//eat(){} 메서드 작성
//메서드 eat, `Mmmmmmmmm jelly` 로 리턴 
class Grub {
  // TODO..
  constructor(){
    this.age = 0;
    this.color = 'pink';
    this.food = 'jelly';
  }
  eat(){
    return `Mmmmmmmmm jelly`;
  }  
}

module.exports = Grub;

Bee.js

//의사코드
//extends 부모클래스 지정(상속)
//super() 부모클래스의 함수 호출 *construct(){}안에 작성
//construct(){}안에 클래스 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;

ForagerBee.js

//의사코드
//extends 부모클래스 지정(상속)
//super() 부모클래스의 함수 호출 *construct(){}안에 작성
//construct(){}안에 클래스 ForagerBee의 속성 작성
//forage(){} 메서드 작성
//메서드 forage, push => treasureChest 속성에 배열값을 넣어준다.
const Bee = require('./Bee');

class ForagerBee extends Bee{
  // TODO..
  constructor(){
    super();
    this.age = 10;
    this.job = 'find pollen';
    this.canFly = true
    this.treasureChest = []; 
  }
  forage(treasure){
    this.treasureChest.push(treasure);
    return this.treasureChest;
  }
}

module.exports = ForagerBee;

HoneyMakerBee.js

//의사코드
//extends 부모클래스 지정(상속)
//super() 부모클래스의 함수 호출 *construct(){}안에 작성
//construct(){}안에 클래스 HoneyMakerBee의 속성 작성
//makeHoney(){} , giveHoney(){} 메서드 작성
//메서드 makeHoney : honeyPot 1씩 증가
//메서드 giveHoney : honeyPot 1씩 감소
const Bee = require('./Bee');

class HoneyMakerBee extends Bee {
  // TODO..
  constructor(){
    super();
    this.age = 10;
    this.job = 'make honey';
    this.honeyPot = 0
  }
  makeHoney(){
    this.honeyPot++;
  }

  giveHoney(){
    this.honeyPot--;
  }
}

module.exports = HoneyMakerBee;
profile
프론트엔드 개발하는 송하은입니다🐣

0개의 댓글