Канструктар пры наследаванні ў ААП у JavaScript

Пры наследаванні можна перавызначаць канструктар бацькі. Давайце паглядзім на прыкладзе. Хай у нас ёсць наступны клас бацькі:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  getName() {
    return this.name;
  }
  getSurn() {
    return this.surn;
  }
}

Хай ад бацькоўскага класа наследуе наступны клас:

javascriptclass Student extends User {
  
}

Хай мы хочам у класе-нашчадку пашырыць канструктар, дадаўшы ў яго дадатковыя параметры:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    
  }
}

У гэтым выпадку нам абавязкова трэба першай радком выклікаць канструктар бацькі праз super:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super();
  }
}

Каманда super па суці з'яўляецца канструктарам бацькі. Таму перададзім у яго патрабаваныя параметры:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
  }
}

Цяпер у нашчадку год навучання запішам у ўласцівасць нашчадка:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
}

Зробім гетэр для года навучання:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
  
  getYear() {
    return this.year;
  }
}
Задание 1

Хай клас Employee наследуе ад класа User з данага ўрока.

Задание 2

Перавызначце ў класе Employee канструктар бацькі, дадаўшы ў яго параметр з узростам і зарплатай.

Задание 3

Зрабіце гетэры для ўзросту і зарплаты.