Konstruktor dalam Pewarisan OOP di JavaScript
Dalam pewarisan, kita dapat mengoverride konstruktor induk. Mari kita lihat contohnya. Misalkan kita memiliki kelas induk berikut:
class 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:
class Student extends User {
}
Misalkan kita ingin dalam kelas turunan memperluas konstruktor, menambahkan parameter tambahan ke dalamnya:
class Student extends User {
constructor(name, surn, year) {
}
}
Dalam hal ini, kita harus
pada baris pertama memanggil konstruktor
induk melalui super:
class 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:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Sekarang dalam turunan, tahun pembelajaran akan dicatat dalam properti sendiri dari turunan:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Mari buat getter untuk tahun pembelajaran:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Misalkan kelas Employee mewarisi
dari kelas User dari pelajaran ini.
Override dalam kelas Employee
konstruktor induk, menambahkan
parameter dengan usia dan gaji.
Buat getter untuk usia dan gaji.