클래스 상속

Bin2·2022년 5월 25일
0
post-custom-banner

extends

부모 클래스의 속성이나 메서드를 상속받을 수 있음

class Bootcamp {
	constructor(name) {
		this.name = name;
	}
	
	sayHello() {
		console.log(`Hello ${this.name}`);
	}
}

class Codestates extends Bootcamp {
	sayMyName() {
		console.log(`My name is ${this.name}`);
	}
}

const codestates = new Codestates('codestates');
codestates.sayHello(); // Hello codestates
codestates.sayMyName(); // My name is codestates

super

부모 클래스의 속성이나 메서드를 참조할 때 사용

class Calculate {

	constructor(num1, num2) {
		this.num1 = num1;
		this.num2 = num2;
	}

	plus() {
		return this.num1 + this.num2;
	}
}

class Negative extends Calculate {

	convertToNegative() {
		return super.plus() * -1;		// 부모의 plus() 메서드를 참조
	}
}

const result = new Negative(2,3);
result.convertToNegative(); // -5

만약 자식 클래스에서 부모 클래스의 속성, 메서드를 super 없이 참조한다면, ReferenceError 발생

class Negative extends Calculate {

	convertToNegative() {
		return plus() * -1;		// super 없이 부모 클래스의 메서드를 참조
	}
}

const result = new Negative(2,3);
result.convertToNegative(); // ReferenceError
profile
Developer
post-custom-banner

0개의 댓글