JavaScript OOP에서 부모 메서드 재정의하기

자식 클래스는 부모의 메서드를 재정의할 수 있습니다. 동일한 이름의 메서드를 생성하면 됩니다. 예제를 통해 살펴보겠습니다. 다음과 같은 부모 클래스가 있다고 가정해 봅시다:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.name;
  }
}

자식 클래스에서 동일한 이름의 메서드를 만들어 보겠습니다:

javascriptclass Student extends User {
  setName(name) {
    
  }
}

일반적으로 부모 메서드를 재정의하는 것은 해당 메서드의 동작을 변경하거나 보충하기 위함입니다. 이 예제에서는 이름의 길이를 검증하는 로직을 추가해 보겠습니다:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('student name error');
    }
  }
}

실제로 재정의된 메서드가 호출되는지 확인해 보겠습니다. 먼저 자식 클래스의 객체를 생성합니다:

javascriptlet student = new Student;

이제 올바른 값을 전달하여 메서드를 호출해 보겠습니다:

javascriptstudent.setName('john');

이제 올바르지 않은 값을 전달하여 메서드를 호출해 보겠습니다. 결과적으로 콘솔에 오류가 발생하는 것을 볼 수 있습니다:

javascriptstudent.setName(''); // 오류
Задание 1

User 클래스에서 나이에 대한 게터와 세터를 만드세요.

Задание 2

Employee 클래스에서 나이 세터를 재정의하고, 나이가 18세에서 65세 사이인지 검증하는 로직을 추가하세요.