Szülő osztály metódusainak felülírása az OOP-ban JavaScriptben
Egy leszármazott osztály felülírhatja a szülő metódusát egy azonos nevű metódus létrehozásával. Nézzünk egy példát. Tegyük fel, hogy a következő szülő osztályunk van:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Hozzunk létre egy azonos nevű metódust a leszármazott osztályban:
class Student extends User {
setName(name) {
}
}
Általában a szülő metódusok felülírása azért szükséges, hogy a metódus viselkedését megváltoztassuk vagy kiegészítsük. Esetünkben adjunk hozzá egy ellenőrzést a név hosszára:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Győződjünk meg arról, hogy a felülírt metódus hívódik meg. Először hozzunk létre egy objektumot a leszármazott osztályból:
let student = new Student;
Most hívjuk meg a metódusunkat, átadva neki egy helyes értéket:
student.setName('john');
Most hívjuk meg a metódust, átadva neki egy helytelen értéket. Ennek eredményeképpen a konzolban egy kivételt látunk:
student.setName(''); // hiba
A User osztályban készítsen
kor gettert és settert.
A Employee osztályban írja felül
a kor settert és végezzen benne
ellenőrzést, hogy a kor
18 és 65 év között legyen.