Pewarisan, super, dan Kapan Memilih Komposisi
Perluas kelas dasar dengan extends, panggil super dalam constructor, timpa metode dengan aman, dan ketahui kapan komposisi sederhana lebih baik
Pewarisan, super, dan Kapan Memilih Komposisi adalah pelajaran JavaScript Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 3. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar JavaScript Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus JavaScript Academy mencakup 3 pelajaran total.
Gambaran besar
Tujuan: Menggunakan pewarisan dasar tanpa kebingungan.
- extends membuat kelas turunan
- super(...) memanggil konstruktor induk
- Ganti sebuah metode; bila perlu, panggil super.method()
- Jika bukan hubungan “is-a”, utamakan komposisi

extends + super
Buat kelas turunan dengan extends; panggil super(name) untuk menjalankan konstruktor induk dan menyiapkan this.
// Base class with a small field and method
class Animal {
constructor(name) {
this.name = name;
}
info() {
return "Animal:" + this.name;
}
}
// Child class extends the base and calls super(...)
class Dog extends Animal {
constructor(name, breed) {
// must call super() before using this
super(name);
this.breed = breed;
}
speak() {
return "woof";
}
}
const d = new Dog("Milo", "Beagle");
console.log(d.info(), d.speak());

Penggantian metode
Saat mengganti metode, Anda dapat memanggil super.method() untuk menggunakan kembali logika base, lalu menambahkan penyesuaian Anda.
// Override a method; keep parent behavior with super.method()
class Button {
click() {
return "base-click";
}
}
class IconButton extends Button {
click() {
// call parent behavior, then add something
const base = super.click();
return base + "+icon";
}
}
const b = new IconButton();
console.log(b.click()); // "base-click+icon"

Utamakan komposisi untuk hubungan has-a
Jika hubungannya adalah has-a (menggunakan pembantu), utamakan komposisi daripada pewarisan agar kelas tetap sederhana.
// Composition: use a helper object instead of extending
class Logger {
log(msg) {
console.log("[log]", msg);
}
}
class Player {
constructor(name, logger) {
this.name = name;
this.logger = logger; // has-a logger
}
score(points) {
this.logger.log(this.name + " +" + points);
}
}
const logger = new Logger();
const p = new Player("Ayla", logger);
p.score(5);

is-a vs has-a
Pewarisan memodelkan hubungan is-a: Dog adalah Animal. Komposisi digunakan untuk pembantu has-a.
// Use instanceof for a quick is-a check
console.log("Dog is Animal?", d instanceof Animal);
console.log("Player is Animal?", p instanceof Animal);

Kebiasaan pemula
Kiat:
- Buat hierarki tetap dangkal agar mudah dipahami pemula.
- Panggil super(...) terlebih dahulu dalam konstruktor subkelas.
- Ganti hanya bagian yang diperlukan; gunakan kembali dengan super.method().
- Utamakan komposisi untuk utilitas dan fitur lintas fungsi.

Kuis dasar super(...)
Cek cepat: super dalam konstruktor subkelas.

Ringkasan
Ringkasan: Gunakan extends untuk hubungan is-a yang sebenarnya, panggil super(...) lebih awal, lakukan penggantian dengan hati-hati (panggil super.method() bila membantu), dan utamakan komposisi untuk pembantu.

Pertanyaan yang Sering Diajukan
Apakah pelajaran “Pewarisan, super, dan Kapan Memilih Komposisi” gratis?
Ya — teks lengkap “Pewarisan, super, dan Kapan Memilih Komposisi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus JavaScript Academy, upgrade ke CoddyKit PRO. Kursus JavaScript Academy mencakup 3 pelajaran total.
Apa yang akan aku pelajari di “Pewarisan, super, dan Kapan Memilih Komposisi”?
Perluas kelas dasar dengan extends, panggil super dalam constructor, timpa metode dengan aman, dan ketahui kapan komposisi sederhana lebih baik Kamu berlatih JavaScript Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai JavaScript Academy?
Tidak diperlukan pengalaman sebelumnya. JavaScript Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 3.
Berapa lama pelajaran “Pewarisan, super, dan Kapan Memilih Komposisi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran JavaScript Academy ini?
Ya. Setiap pelajaran JavaScript Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Field Kelas, Field Privat #, dan Anggota static
- Pewarisan, super, dan Kapan Memilih Komposisi
- Mixin (Cicipan) — Penggunaan Ulang Sederhana tanpa Hierarki Mendalam