Menu
CoddyTech

Pewarisan Dasar (extends)

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan Java di Coddy. Pelajaran 20 dari 87.

Inheritance adalah salah satu pilar utama OOP. Fitur ini memungkinkan sebuah class memperoleh property dan method dari class lain, mendorong penggunaan ulang kode dan membentuk hierarki alami di antara class.

Di Java, kamu membuat hubungan pewarisan menggunakan kata kunci extends. Class yang mewarisi disebut subclass (atau class anak), dan class yang diwarisi disebut superclass (atau class induk).

public class Animal {
    private String name;
    
    public Animal(String name) {
        this.name = name;
    }
    
    public void eat() {
        System.out.println(name + " is eating");
    }
    
    public String getName() {
        return name;
    }
}

public class Dog extends Animal {
    public Dog(String name) {
        super(name);  // Memanggil konstruktor induk
    }
    
    public void bark() {
        System.out.println(getName() + " says woof!");
    }
}

class Dog secara otomatis mewarisi method eat() dan method getName() dari Animal. class ini juga dapat mendefinisikan method sendiri seperti bark():

Dog myDog = new Dog("Buddy");
myDog.eat();   // Diwarisi: "Buddy is eating"
myDog.bark();  // method sendiri: "Buddy says woof!"

Anggap pewarisan sebagai hubungan "adalah". Dog adalah Animal, jadi masuk akal jika Dog mewarisi Animal. Hubungan ini memungkinkan kamu membangun class khusus yang berbagi fungsi umum sekaligus menambahkan perilaku uniknya sendiri.

challenge icon

Tantangan

Mudah

Mari kita bangun sistem kendaraan sederhana yang menunjukkan pewarisan dalam praktik. Kamu akan membuat class induk yang menyimpan property umum kendaraan, lalu class anak yang memperluasnya dengan perilaku khusus.

Kamu akan mengatur kodemu dalam tiga file:

  • Vehicle.java: Buat class induk yang merepresentasikan kendaraan apa pun. Class ini harus memiliki:
    • Field private untuk brand kendaraan (String)
    • Constructor yang menerima nama brand dan menetapkannya ke field. (Pemanggilan super() tidak diperlukan di sini, karena Vehicle berada di puncak hierarki.)
    • Method getBrand() yang mengembalikan brand
    • Method start() yang mencetak: [brand] is starting
  • Motorcycle.java: Buat subclass yang mewarisi Vehicle. Sepeda motor adalah kendaraan, jadi hubungan "is-a" ini membuat pewarisan sesuai. Motorcycle-mu harus:
    • Menggunakan extends untuk mewarisi Vehicle
    • Memiliki constructor yang menerima brand dan meneruskannya ke class induk menggunakan super(brand)
    • Menambahkan method sendiri, wheelie(), yang mencetak: [brand] is doing a wheelie!
  • Main.java: Satukan semuanya dengan membuat object Motorcycle dan menunjukkan perilaku yang diwarisi serta perilaku uniknya. Kamu akan menerima satu input: nama brand. Cetak dua baris dengan memanggil:
    • Method start() yang diwarisi
    • Method wheelie() milik Motorcycle

Kamu akan menerima satu input: nama brand (String) untuk sepeda motormu.

Perhatikan bagaimana Motorcycle otomatis memiliki akses ke start() dan getBrand() tanpa menulis ulang keduanya. Itulah kekuatan pewarisan!

Coba sendiri

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String brand = scanner.nextLine();
        
        // TODO: Buat object Motorcycle dengan brand tersebut
        
        // TODO: Panggil method start() yang diwarisi
        
        // TODO: Panggil method wheelie()
    }
}
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 Java online