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:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Loome alamklassis sama nimega meetodi:
class 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:
class 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:
let student = new Student;
Nüüd kutsume välja meie meetodi, andes sellele korrektse väärtuse:
student.setName('john');
Nüüd kutsume meetodi välja, andes sellele mittekorrektse väärtuse. Tulemusena näeme konsoolis visatud veateadet:
student.setName(''); // viga
Klassis User tehke
vanuse getter ja setter.
Klassis Employee kirjutage üle
vanuse setter ja tehke selles
kontroll, et vanus oleks
18 kuni 65 aastat.