Prepisovanje metod starša v OOP v JavaScript

Podrejeni razred lahko prepiše metodo starša z ustvarjanjem metode z enakim imenom. Poglejmo si primer. Recimo, da imamo naslednji starševski razred:

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

V podrejenem razredu ustvarimo metodo z istim imenom:

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

Praviloma je prepisovanje metod starša potrebno zato, da spremenimo ali dopolnimo vedenje te metode. V našem primeru dodajmo preverjanje dolžine imena:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('napaka imena študenta');
    }
  }
}

Prepričajmo se, da se kliče natančno prepisana metoda. Najprej ustvarimo objekt podrejenega razreda:

javascriptlet student = new Student;

Zdaj pokličimo našo metodo, ji podajmo pravilno vrednost:

javascriptstudent.setName('john');

Zdaj pa pokličimo metodo in ji podajmo napačno vrednost. Kot rezultat bomo v konzoli videli vrženo napako:

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

V razredu User naredite getter in setter za starost.

Задание 2

V razredu Employee prepišite setter za starost in v njem preverite, ali je starost od 18 do 65 let.