Oorversiering van ouer metodes in OOP in JavaScript
'n Subklas kan 'n metode van die ouer oorversier deur 'n metode met dieselfde naam te skep. Kom ons kyk na 'n voorbeeld. Laat ons die volgende ouerklas hê:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Kom ons skep 'n metode met dieselfde naam in die subklas:
class Student extends User {
setName(name) {
}
}
Oor die algemeen is die oorversiering van ouer metodes nodig om die gedrag van hierdie metode te verander of aan te vul. Kom ons voeg in ons geval 'n lengtetoets by die naam:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Kom ons seker maak dat die oorversierde metode presies genoem word. Laat ons eers 'n objek van die subklas skep:
let student = new Student;
Laat ons nou ons metode roep, en 'n korrekte waarde daaraan gee:
student.setName('john');
En laat ons nou die metode roep, en gee 'n onkorrekte waarde daaraan. As gevolg sal ons 'n fout in die konsole sien:
student.setName(''); // fout
Maak in die klas User 'n
ouderdom-getter en -setter.
Oorversier in die klas Employee die
ouderdom-setter en doen 'n toets dat die ouderdom van
18 tot 65 jaar is.