Parent meetodite ülekirjutamine OOP-s JavaScriptis

Alamklass saab üle kirjutada vanema meetodi, luues meetodi sama nimega. Vaatame näidet. Oletame, et meil on järgmine vanemaklass:

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

Loome alamklassis sama nimega meetodi:

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

Tavaliselt on vanema meetodite ülekirjutamine vajalik selleks, et muuta või täiendada selle meetodi käitumist. Lisame meie juhul nime pikkuse kontrolli:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('õpilase nime viga');
    }
  }
}

Veendume, et kutsutakse välja just ülekirjutatud meetod. Kõigepealt loome objekti alamklassist:

javascriptlet student = new Student;

Nüüd kutsume välja meie meetodi, andes sellele korrektse väärtuse:

javascriptstudent.setName('john');

Nüüd kutsume meetodi välja, andes sellele mittekorrektse väärtuse. Tulemusena näeme konsoolis visatud veateadet:

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

Klassis User tehke vanuse getter ja setter.

Задание 2

Klassis Employee kirjutage üle vanuse setter ja tehke selles kontroll, et vanus oleks 18 kuni 65 aastat.