Канструктар пры наследаванні ў ААП у 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
канструктар бацькі, дадаўшы ў яго
параметр з узростам і зарплатай.
Зрабіце гетэры для ўзросту і зарплаты.