Overstyrning av foreldremetoder i OOP i JavaScript
En underklasse kan overstyre en metode fra foreldreklassen ved å opprette en metode med samme navn. La oss se på et eksempel. La oss si at vi har følgende foreldreklasse:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
La oss i underklassen opprette en metode med samme navn:
class Student extends User {
setName(name) {
}
}
Vanligvis er hensikten med å overstyre metoder fra foreldreklassen å endre eller supplere oppførselen til denne metoden. La oss i vårt tilfelle legge til en sjekk av navnelengden:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
La oss forsikre oss om at det er den overstyrte metoden som kalles. La oss først opprette et objekt av underklassen:
let student = new Student;
La oss nå kalle metoden vår, og gi den en korrekt verdi:
student.setName('john');
La oss nå kalle metoden, og gi den en ukorrekt verdi. Som et resultat vil vi se en utløst feil i konsollen:
student.setName(''); // feil
I klassen User skal du lage
getter og setter for alder.
I klassen Employee skal du overstyre
setteren for alder og implementere en sjekk
for at alderen er mellom
18 og 65 år.