Sobrescritura de métodos padre en POO en JavaScript
Una clase hija puede sobrescribir un método del padre, creando un método con el mismo nombre. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Creemos un método homónimo en la clase hija:
class Student extends User {
setName(name) {
}
}
Generalmente, la sobrescritura de métodos del padre es necesaria para cambiar o complementar el comportamiento de ese método. En nuestro caso, agreguemos una verificación de la longitud del nombre:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Asegurémonos de que se llama exactamente al método sobrescrito. Primero creemos un objeto de la clase hija:
let student = new Student;
Ahora llamemos a nuestro método, pasándole un valor válido:
student.setName('john');
Y ahora llamemos al método, pasándole un valor no válido. Como resultado, veremos en la consola el error lanzado:
student.setName(''); // error
En la clase User haz
un getter y un setter para la edad.
En la clase Employee sobrescribe
el setter de la edad y haz en él
una verificación de que la edad está entre
18 y 65 años.