Inheritance: extends, super
Pewarisan class, super(), method override.
Pahami konsepnya
class Admin extends Pengguna { constructor(nama, email, level) { super(nama, email); this.level = level; } } — Admin mewarisi semua properti dan method Pengguna. super() memanggil constructor induk sebelum menambah inisialisasi sendiri.
Method override: deklarasikan method dengan nama sama di class anak. Panggil versi induk lewat super.methodName(). Ini memungkinkan menambah perilaku tanpa menulis ulang semuanya.
instanceof memeriksa pewarisan: admin instanceof Admin → true, admin instanceof Pengguna → true (karena Admin extends Pengguna). Multi-level: C extends B extends A — prototype chain tiga tingkat.
Coba contoh kode
class Pengguna {
constructor(nama, email) {
this.nama = nama;
this.email = email;
}
info() { return `${this.nama} <${this.email}>`; }
}
class Admin extends Pengguna {
constructor(nama, email, level) {
super(nama, email);
this.level = level;
}
info() {
return `[L${this.level}] ${super.info()}`;
}
}
const a = new Admin("Zaky", "ops@dev", 5);
console.log(a.info());
console.log(a instanceof Admin); // true
console.log(a instanceof Pengguna); // truesuper(nama, email) mengisi bagian induk; info() dioverride menambah prefix [L5] sambil memanggil super.info() untuk bagian asli. instanceof mengenali seluruh rantai pewarisan.
Latihan singkat
Uji: Pelanggan extends Pengguna dengan saldo — harus `[C] Budi <b@m> 50000`.