Introductie tot method overriding en recursie

Input/Output en streams in Java

Alex Liu

Software Development Engineer

Een basisklasse definiëren

  • De Animal-klasse stelt een generiek dier voor
    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 en streams in Java

Overerving begrijpen - extends

// Gebruik `extends` om een subklasse van `Animal` te maken genaamd `Dog`
class Dog extends Animal {
    void bark() {System.out.println("Bark");}
}
public static void main(String[] args) {
    Dog d = new Dog(); // Maak een nieuwe Dog die Animal uitbreidt
    d.makeSound();
    d.bark();
}
  • Print beide geluiden, regel voor regel:
Animal sound
Bark
Input/Output en streams in Java

Methoden overschrijven in Java

class Cat extends Animal {
    @Override // Gebruik `@Override` om het gedrag van `.makeSound()` te overschrijven
    void makeSound() {
        System.out.println("Meow");
    }
}
public static void main(String[] args) {
    Cat c = new Cat(); // Maak een nieuwe Cat die Animal uitbreidt
    c.makeSound(); // Roep de overschreven methode `makeSound()` aan
}
Meow
Input/Output en streams in Java

Recursie begrijpen

  • Een methode roept zichzelf aan om een probleem op te lossen
  • Vereist een basisgeval om oneindige recursie te voorkomen
public class RecursionExample {
    static void countdown(int n) {
        // Basisgeval
        if (n == 0) return; 
        System.out.println(n);
        // Recursieve aanroep
        countdown(n - 1); 
    }
}
Input/Output en streams in Java

Voorbeeld van recursie

  • Voorbeeldgebruik
    public static void main(String[] args) {
      countdown(5);
    }
    
  • Recursieve aanroep stopt bij het basisgeval 0
    5
    4
    3
    2
    1
    
Input/Output en streams in Java

Samenvatting

  • extends maakt overerving mogelijk

  • @Override past geërfd gedrag aan

  • Recursion splitst problemen op in kleinere stappen

    • Basisgeval voorkomt oneindige recursie
Input/Output en streams in Java

Laten we oefenen!

Input/Output en streams in Java

Preparing Video For Download...