Omskrivning af forældremetoder i OOP i JavaScript
En underklasse kan omskrive en forældremetode ved at oprette en metode med det samme navn. Lad os se et eksempel. Antag, at vi har følgende forældreklasse:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Lad os i underklassen oprette en metode med samme navn:
class Student extends User {
setName(name) {
}
}
Som regel er formålet med at omskrive metoder fra forældreklassen at ændre eller supplere denne metodes adfærd. Lad os i vores tilfælde tilføje en kontrol for navnets længde:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Lad os sikre os, at det er den omskrevne metode, der kaldes. Lad os først oprette et objekt af underklassen:
let student = new Student;
Lad os nu kalde vores metode og give den en korrekt værdi:
student.setName('john');
Lad os nu kalde metoden og give den en ukorrekt værdi. Som resultat vil vi se en udløst fejl i konsollen:
student.setName(''); // fejl
I klassen User skal du lave
en getter og setter for alder.
I klassen Employee skal du omskrive
setteren for alder og tilføje en
kontrol for, at alderen er mellem
18 og 65 år.