Menu
CoddyTech

Mewarisi property & method

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 28 dari 56.

Saat sebuah class memperluas class lain, class tersebut mewarisi semua property dan method dari class induk. Artinya, class turunan otomatis memiliki akses ke semua yang didefinisikan dalam class induk.

Mari buat class induk dengan property dan method:

class Animal {
  constructor(name, age) {
    this.name = name;
    this.age = age;
  }
  
  eat() {
    return `${this.name} is eating`;
  }
  
  sleep() {
    return `${this.name} is sleeping`;
  }
}

Sekarang, mari buat class turunan yang mewarisi Animal:

class Dog extends Animal {
  constructor(name, age, breed) {
    super(name, age);
    this.breed = breed;
  }
}

Buat sebuah instance dari class Dog:

const rex = new Dog("Rex", 3, "German Shepherd");

Sekarang, meskipun kita tidak mendefinisikan eat() dan sleep() di dalam class Dog, kita tetap bisa menggunakan method ini:

console.log(rex.eat());  // Output: Rex sedang makan
console.log(rex.sleep()); // Output: Rex sedang tidur

Dan kita dapat mengakses semua property yang diwarisi:

console.log(rex.name);  // Output: Rex
console.log(rex.age);   // Output: 3
console.log(rex.breed); // Output: German Shepherd
challenge icon

Tantangan

Buat class Cake yang memperluas Dessert dan ekspor class tersebut. Cake harus memiliki:

  • Semua property dan method yang diwarisi dari Dessert
  • Property baru flavor
  • Method baru addCandles() yang mengembalikan string “Added candles to ${this.name}!”

Coba sendiri

import { Dessert } from './desserts.js';
import { Cake } from './desserts.js';

// Kode pengujian, jangan diubah
const myCake = new Cake("Birthday Cake", 300, "Chocolate");
console.log(myCake.describe());   // Seharusnya menghasilkan output "Birthday Cake has 300 calories"
console.log(myCake.flavor);       // Seharusnya menghasilkan output "Chocolate"
console.log(myCake.addCandles()); // Seharusnya menghasilkan output "Added candles to Birthday Cake!"
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler JavaScript online