Overschrijven van ouder methoden in OOP in JavaScript

Een subklasse kan een methode van de ouder overschrijven door een methode met dezelfde naam te creëren. Laten we eens kijken naar een voorbeeld. Stel dat we de volgende ouderklasse hebben:

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

Laten we in de subklasse een methode met dezelfde naam aanmaken:

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

Over het algemeen is het overschrijven van methoden van de ouder nodig om het gedrag van deze methode te wijzigen of aan te vullen. Laten we in ons geval een controle op de lengte van de naam toevoegen:

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

Laten we ervoor zorgen dat de overschreven methode wordt aangeroepen. Laten we eerst een object van de subklasse aanmaken:

javascriptlet student = new Student;

Laten we nu onze methode aanroepen, en er een correcte waarde aan doorgeven:

javascriptstudent.setName('john');

Laten we nu de methode aanroepen en er een incorrecte waarde aan doorgeven. Als resultaat zullen we de gegooiden fout in de console zien:

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

Maak in de klasse User een getter en setter voor leeftijd.

Задание 2

Overschrijf in de klasse Employee de leeftijd setter en voeg er een controle in toe dat de leeftijd van 18 tot 65 jaar is.