Prepisovanje metod starša v OOP v JavaScript
Podrejeni razred lahko prepiše metodo starša z ustvarjanjem metode z enakim imenom. Poglejmo si primer. Recimo, da imamo naslednji starševski razred:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
V podrejenem razredu ustvarimo metodo z istim imenom:
class Student extends User {
setName(name) {
}
}
Praviloma je prepisovanje metod starša potrebno zato, da spremenimo ali dopolnimo vedenje te metode. V našem primeru dodajmo preverjanje dolžine imena:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('napaka imena študenta');
}
}
}
Prepričajmo se, da se kliče natančno prepisana metoda. Najprej ustvarimo objekt podrejenega razreda:
let student = new Student;
Zdaj pokličimo našo metodo, ji podajmo pravilno vrednost:
student.setName('john');
Zdaj pa pokličimo metodo in ji podajmo napačno vrednost. Kot rezultat bomo v konzoli videli vrženo napako:
student.setName(''); // napaka
V razredu User naredite
getter in setter za starost.
V razredu Employee prepišite
setter za starost in v njem
preverite, ali je starost od
18 do 65 let.