Pengantar Method Overriding dan Rekursi

Input/Output dan Stream di Java

Alex Liu

Software Development Engineer

Mendefinisikan kelas dasar

  • Kelas Animal merepresentasikan hewan umum
    class Animal {
      void makeSound() {
          System.out.println("Animal sound");
      }
      public static void main(String[] args) {
          Animal a = new Animal();
          a.makeSound(); // Output: Animal sound
      }
    }
    
Animal sound
Input/Output dan Stream di Java

Memahami pewarisan - extends

// Gunakan `extends` untuk membuat subclass `Animal` bernama `Dog`
class Dog extends Animal {
    void bark() {System.out.println("Bark");}
}
public static void main(String[] args) {
    Dog d = new Dog(); // Buat instance baru objek Dog yang mewarisi Animal
    d.makeSound();
    d.bark();
}
  • Cetak kedua suara baris demi baris:
Animal sound
Bark
Input/Output dan Stream di Java

Menimpa method di Java

class Cat extends Animal {
    @Override // Gunakan `@Override` untuk menimpa perilaku `.makeSound()`
    void makeSound() {
        System.out.println("Meow");
    }
}
public static void main(String[] args) {
    Cat c = new Cat(); // Buat instance baru objek Cat yang mewarisi Animal
    c.makeSound(); // Panggil method yang ditimpa `makeSound()`
}
Meow
Input/Output dan Stream di Java

Memahami rekursi

  • Method memanggil dirinya sendiri untuk menyelesaikan masalah
  • Memerlukan base case agar tidak rekursi tanpa akhir
public class RecursionExample {
    static void countdown(int n) {
        // Base case
        if (n == 0) return; 
        System.out.println(n);
        // Panggilan rekursif
        countdown(n - 1); 
    }
}
Input/Output dan Stream di Java

Contoh rekursi

  • Contoh penggunaan
    public static void main(String[] args) {
      countdown(5);
    }
    
  • Panggilan rekursif berhenti saat mencapai base case yaitu 0
    5
    4
    3
    2
    1
    
Input/Output dan Stream di Java

Ringkasan

  • extends mengaktifkan pewarisan

  • @Override mengubah perilaku yang diwarisi

  • Recursion memecah masalah menjadi langkah lebih kecil

    • Base case mencegah rekursi tak berujung
Input/Output dan Stream di Java

Ayo berlatih!

Input/Output dan Stream di Java

Preparing Video For Download...