JavaScript OOP 상속에서 생성자
상속 시 부모의 생성자를 재정의할 수 있습니다. 예제를 통해 살펴보겠습니다. 다음과 같은 부모 클래스가 있다고 가정해 봅시다:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
부모 클래스를 다음과 같이 상속하는 클래스가 있다고 합시다:
class Student extends User {
}
자식 클래스에서 추가 매개변수를 넣어 생성자를 확장하고 싶다고 가정해 봅시다:
class Student extends User {
constructor(name, surn, year) {
}
}
이 경우 반드시 첫 번째 줄에서 super를 통해 부모 생성자를 호출해야 합니다:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
super 명령은 본질적으로 부모의 생성자입니다.
따라서 필요한 매개변수를 전달해 봅시다:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
이제 자식 클래스에서 입학 연도를 자식 클래스의 고유 속성에 기록해 봅시다:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
입학 연도를 위한 게터를 만들어 봅시다:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Employee 클래스가 이 수업의
User 클래스를 상속한다고 가정해 봅시다.
Employee 클래스에서 부모 생성자를 재정의하여
나이와 급여 매개변수를 추가해 보세요.
나이와 급여를 위한 게터를 만드세요.