Constructor bij overerving in OOP in JavaScript
Bij overerving is het mogelijk om de constructor van de ouder te overschrijven. Laten we een voorbeeld bekijken. Stel dat we de volgende ouderklasse hebben:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Stel dat de volgende klasse overerft van de ouderklasse:
class Student extends User {
}
Stel dat we in de afstammingsklasse de constructor willen uitbreiden door er extra parameters aan toe te voegen:
class Student extends User {
constructor(name, surn, year) {
}
}
In dit geval moeten we verplicht
op de eerste regel de constructor
van de ouder aanroepen via super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
De opdracht super is in wezen
de constructor van de ouder. Laten we
er de vereiste parameters aan doorgeven:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Laten we het studiejaar in de afstammeling opslaan in een eigen eigenschap van de afstammeling:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Laten we een getter maken voor het studiejaar:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Stel dat de klasse Employee overerft
van de klasse User uit deze
les.
Overschrijf in de klasse Employee
de constructor van de ouder, en voeg er
een parameter voor leeftijd en salaris aan toe.
Maak getters voor de leeftijd en het salaris.