class Pet {
	constructor (name, age) {
		this.name = name;
		this.age = age;
	}
	eat () {
		return `${this.name} is eating!`;
	}
}

class Cat extends Pet {
	//super is referenced super class(which is Pet class in this case)
	constructor (name, age, livesleft = 9) {
		super(name, age);
		this.livesleft = livesleft;
	}

	//pet의 생성자를 빌려와서 새로운 Cat객체를 생성가능
	meow () {
		return 'MEOWWWW!!';
	}
}

const nabi = new Cat('Nabi', 2);

class Dog extends Pet {
	//pet의 생성자를 빌려와서 새로운 Dog객체를 생성가능
	bark () {
		return 'WOOOF!!!';
	}
	eat () {
		return `${this.name} scarfs his foods!`;
	} //Pet class의 eat메소드를 over write
}

const rug = new Dog('Rug', 7);