Hubungan "is-a"
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 25 dari 56.
Hubungan "is-a" adalah tes sederhana untuk menentukan kapan pewarisan masuk akal. Jika kamu bisa mengatakan "X adalah Y" dan terdengar benar, X mungkin sebaiknya mewarisi dari Y.
Benar (Gunakan Pewarisan):
- "Anjing adalah hewan" →
class Dog extends Animal
- "Sebuah Car adalah Vehicle" →
class Car extends Vehicle
- "Buku teks adalah sebuah buku" →
class Textbook extends Book
Keliru (Jangan Gunakan Pewarisan):
- "Seorang Driver adalah Car" → Tidak, seorang pengemudi menggunakan mobil
- "Sebuah Roda adalah Mobil" → Tidak, roda adalah bagian dari mobil
- "Seorang Siswa adalah Ruang Kelas" → Tidak, seorang siswa berada di dalam ruang kelas
Sebagai contoh, mari kita bahas dua object:
// class dasar: inilah jenis mereka semua
class Book {
constructor(title, author, pages) {
this.title = title;
this.author = author;
this.pages = pages;
}
read() {
console.log(`Reading ${this.title} by ${this.author}`);
}
}
// Novel ADALAH Book (pewarisan yang benar)
class Novel extends Book {
constructor(title, author, pages, genre) {
super(title, author, pages);
this.genre = genre;
}
}
// Menggunakan class
const fiction = new Novel("1984", "George Orwell", 328, "Dystopian");
fiction.read(); // "Reading 1984 by George Orwell", diwarisi dari Book
Tantangan
Kamu diberi class ElectronicDevice dan class Smartphone. Smartphone adalah jenis ElectronicDevice dengan fitur tambahan. Tugasmu adalah membuat object `myPhone` dengan merek "Samsung" dan model “Galaxy S23”.
Coba sendiri
import { ElectronicDevice } from './electronicDevice.js';
import { Smartphone } from './smartphone.js';
// TODO: Buat object `myPhone` dengan merek "Samsung" dan model “Galaxy S23”.
// Kode pengujian, jangan ubah
console.log(myPhone.turnOn()); // Seharusnya menghasilkan output "Samsung Galaxy S23 is now ON"Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pemrograman Berorientasi Objek
1Object dan Kata Kunci this
Tinjauan Singkat: objectMenambahkan method ke objectMemahami Kata Kunci thisFungsi KonstruktorKata Kunci newTantangan Rangkuman7Pewarisan & Kata Kunci extends
PewarisanHubungan "is-a"Kata Kunci extendsmethod super()Mewarisi property & methodTantangan Rangkuman2Mengatur Kode
Apa itu module?Mengekspor dengan exportMengimpor dengan importEkspor default vs. ekspor bernama8Mengatur Kode OOP
Mengatur class ke dalam module11Proyek: Perender Bentuk
Penyiapan: class Shape & EksporPewarisan class CircleOverride & Method LuasPenghitung Shape Statis14Sistem Manajemen Perpustakaan
Merancang PerpustakaanClass Book dengan CompositionValidasi Penulis Buku9Method dan property Statis
Level class vs. level instanceProperty StatisMethod Utilitas StatisTantangan RangkumanLatihan sendiri: Compiler JavaScript online