← Kembali ke kursus
Pelajaran kursus · JavaScript
Pelajaran 21

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);  // true

super(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`.