Tėvų metodų perrašymas OOP JavaScripte

Paveldėjusi klasė gali perrašyti tėvo metodą, sukurdama metodą su tokiu pačiu pavadinimu. Pažiūrėkime pavyzdžiu. Tarkime, kad turime šią tėvinę klasę:

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

Paveldimoje klasėje sukurkime metodą tokiu pačiu pavadinimu:

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

Paprastai, tėvų metodų perrašymas reikalingas tam, kad pakeisti arba papildyti to metodo elgesį. Mūsų atveju pridėkime vardo ilgio patikrinimą:

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

Įsitikinkime, kad iškviečiamas būtent perrašytas metodas. Pirmiausia sukurkime objektą paveldimos klasės:

javascriptlet student = new Student;

Dabar iškvikime mūsų metodą, perduodami jam teisingą reikšmę:

javascriptstudent.setName('john');

O dabar iškvikime metodą, perduodami jam neteisingą reikšmę. Rezultate pamatysime konsolėje išmestą klaidą:

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

Klasėje User padarykite amžiaus getterį ir setterį.

Задание 2

Klasėje Employee perrašykite amžiaus setterį ir padarykite jame patikrinimą, kad amžius būtų nuo 18 iki 65 metų.