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:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Laten we in de subklasse een methode met dezelfde naam aanmaken:
class 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:
class 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:
let student = new Student;
Laten we nu onze methode aanroepen, en er een correcte waarde aan doorgeven:
student.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:
student.setName(''); // fout
Maak in de klasse User
een getter en setter voor leeftijd.
Overschrijf in de klasse Employee
de leeftijd setter en voeg er een
controle in toe dat de leeftijd van
18 tot 65 jaar is.