Konstruktor dalam Pewarisan OOP di JavaScript

Dalam pewarisan, kita dapat mengoverride konstruktor induk. Mari kita lihat contohnya. Misalkan kita memiliki kelas induk berikut:

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

Misalkan kelas induk diwarisi oleh kelas berikut:

javascriptclass Student extends User {
  
}

Misalkan kita ingin dalam kelas turunan memperluas konstruktor, menambahkan parameter tambahan ke dalamnya:

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

Dalam hal ini, kita harus pada baris pertama memanggil konstruktor induk melalui super:

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

Perintah super pada dasarnya adalah konstruktor induk. Oleh karena itu, mari kita berikan parameter yang diperlukan ke dalamnya:

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

Sekarang dalam turunan, tahun pembelajaran akan dicatat dalam properti sendiri dari turunan:

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

Mari buat getter untuk tahun pembelajaran:

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

Misalkan kelas Employee mewarisi dari kelas User dari pelajaran ini.

Задание 2

Override dalam kelas Employee konstruktor induk, menambahkan parameter dengan usia dan gaji.

Задание 3

Buat getter untuk usia dan gaji.