Конструктор при наследување во ООП во JavaScript
При наследување може да се преопределува конструкторот на родителот. Ајде да погледнеме на пример. Нека имаме следнава класа на родител:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Нека од родителската класа наследува следнава класа:
class Student extends User {
}
Нека сакаме во класата-потомок да ја прошириме конструкторот, додавајќи во него дополнителни параметри:
class Student extends User {
constructor(name, surn, year) {
}
}
Во овој случај, задолжително треба
во првиот ред да го повикаме конструкторот
на родителот преку super:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
Командата super во суштина е
конструктор на родителот. Затоа,
да ги пренесеме во него потребните параметри:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Сега во потомокот, годината на студии да ја запишеме во својство на потомокот:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Да направиме гетер за годината на студии:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Нека класата Employee наследува
од класата User од оваа
лекција.
Преопределете ја во класата Employee
конструкторот на родителот, додавајќи во него
параметар за возраста и платата.
Направете гетери за возраста и платата.