class 활용 beesbeesbees

moono·2023년 1월 23일
0

과제

목록 보기
4/6

constructor라는 함수 안에 있는 애들을
new class 나 extends 한 애들이 상속 받고
constructor 에 인자로 주어진 애들은
다음 상속 받은 애의 super에 써줘야 this를 쓸 수 있다

Grub

class Grub {
  // 생성자 함수 생성
  constructor (age = 0; color = 'pink') {
    this.age = age;
    this.color = color;
    this.food = 'jelly'
  }
  eat() {return `Mmmmmmmmm Jelly`}
}

module.exports = Grub;

Bee

const Grub = require('./Grub') // Grub 가져오기

class Bee extends Grub { // extends 로 Grub 상속받기
  // 생성자 함수 생성
  constructor (age = 5; job = 'Keep on growing'){ 
    super(age, 'yello')
    this.job = job;
  }
}

module.exports = Bee;

ForagerBee

// Bee 가져오기(Bee는 이미 Grub을 상속받았으니까 Grub은 안 가져와도 됨)
const Bee = require('./Bee') 

class ForagerBee extends Bee { // extends 로 Bee 상속받기
  // 생성자 함수 생성
  constructor (age = 10; job = 'find pollen'){ 
    super(age, job)
    this.canFly = true
    this.treasureChest = [];
  }
  // 메소드 생성 후 treasureChest 에 forage의 인자들 추가하기
  forage(a){this.treasureChest.push(a)}
}

module.exports = ForagerBee;

HoneyMakerBee

// Bee 가져오기(Bee는 이미 Grub을 상속받았으니까 Grub은 안 가져와도 됨)
const Bee = require('./Bee') 

class HoneyMakerBee extends Bee { // extends 로 Bee 상속받기
  // 생성자 함수 생성
  constructor (age = 10; job = 'make honey'){
    super(age, job)
    this.honeyPot = 0;
  }
  // 메소드 생성 후 honeypot +1 하기
  makeHoney(){this.honeyPot += 1}
  // 메소드 생성 후 honeypot -1 하기
  giveHoney(){this.honeyPot -= 1}
}

module.exports = HoneyMakerBee;

0개의 댓글