Tėvų metodų perrašymas OOP JavaScripte
Paveldėjusi klasė gali perrašyti tėvo metodą, sukurdama metodą su tokiu pačiu pavadinimu. Pažiūrėkime pavyzdžiu. Tarkime, kad turime šią tėvinę klasę:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Paveldimoje klasėje sukurkime metodą tokiu pačiu pavadinimu:
class Student extends User {
setName(name) {
}
}
Paprastai, tėvų metodų perrašymas reikalingas tam, kad pakeisti arba papildyti to metodo elgesį. Mūsų atveju pridėkime vardo ilgio patikrinimą:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Įsitikinkime, kad iškviečiamas būtent perrašytas metodas. Pirmiausia sukurkime objektą paveldimos klasės:
let student = new Student;
Dabar iškvikime mūsų metodą, perduodami jam teisingą reikšmę:
student.setName('john');
O dabar iškvikime metodą, perduodami jam neteisingą reikšmę. Rezultate pamatysime konsolėje išmestą klaidą:
student.setName(''); // klaida
Klasėje User padarykite
amžiaus getterį ir setterį.
Klasėje Employee perrašykite
amžiaus setterį ir padarykite jame
patikrinimą, kad amžius būtų nuo
18 iki 65 metų.