Konstruktor vid arv i OOP i JavaScript
Vid arv kan man åsidosätta förälderns konstruktor. Låt oss titta på ett exempel. Låt oss säga att vi har följande förälderklass:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Låt följande klass ärva från förälderklassen:
class Student extends User {
}
Låt oss säga att vi i barnklassen vill utöka konstruktorn genom att lägga till ytterligare parametrar:
class Student extends User {
constructor(name, surn, year) {
}
}
I det här fallet måste vi
på den första raden anropa förälderns
konstruktor via super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Kommandot super är i princip
förälderns konstruktor. Låt oss därför
skicka de nödvändiga parametrarna till den:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Nu i barnet kan vi skriva in studieåret i barnets egen egenskap:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Låt oss skapa en getter för studieåret:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Låt klassen Employee ärva
från klassen User från denna
lektion.
Åsidosätt i klassen Employee
förälderns konstruktor genom att lägga till
parametrar för ålder och lön.
Skapa getters för ålder och lön.