Constructor en la herencia de POO en JavaScript
En la herencia se pueden sobrescribir los constructores padre. Veamos un ejemplo. Supongamos que tenemos la siguiente clase padre:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Supongamos que de la clase padre hereda la siguiente clase:
class Student extends User {
}
Supongamos que queremos en la clase hija ampliar el constructor, añadiéndole parámetros adicionales:
class Student extends User {
constructor(name, surn, year) {
}
}
En este caso necesitamos obligatoriamente
llamar en la primera línea al constructor
padre mediante super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
El comando super en esencia es
el constructor padre. Por lo tanto,
pasémosle los parámetros requeridos:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Ahora en el hijo el año de estudio lo grabamos en su propia propiedad del hijo:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Hagamos un getter para el año de estudio:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Supongamos que la clase Employee hereda
de la clase User de esta
lección.
Sobrescriba en la clase Employee
el constructor padre, añadiéndole
parámetros de edad y salario.
Haga getters para la edad y el salario.