Einführung in Methodenüberschreibung und Rekursion

Ein-/Ausgabe und Streams in Java

Alex Liu

Software Development Engineer

Eine Basisklasse definieren

  • Die Klasse Animal steht für ein generisches Tier
    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
Ein-/Ausgabe und Streams in Java

Vererbung mit extends verstehen

// Verwende `extends`, um eine Unterklasse von `Animal` namens `Dog` zu erstellen
class Dog extends Animal {
    void bark() {System.out.println("Bark");}
}
public static void main(String[] args) {
    Dog d = new Dog(); // Neue Instanz von Dog, die Animal erweitert
    d.makeSound();
    d.bark();
}
  • Gib beide Geräusche zeilenweise aus:
Animal sound
Bark
Ein-/Ausgabe und Streams in Java

Methoden in Java überschreiben

class Cat extends Animal {
    @Override // Verwende `@Override`, um das Verhalten von `.makeSound()` zu überschreiben
    void makeSound() {
        System.out.println("Meow");
    }
}
public static void main(String[] args) {
    Cat c = new Cat(); // Neue Instanz von Cat, die Animal erweitert
    c.makeSound(); // Überschriebene Methode `makeSound()` aufrufen
}
Meow
Ein-/Ausgabe und Streams in Java

Rekursion verstehen

  • Eine Methode, die sich selbst aufruft, um ein Problem zu lösen
  • Benötigt einen Basisfall, um endlose Rekursion zu verhindern
public class RecursionExample {
    static void countdown(int n) {
        // Base case
        if (n == 0) return; 
        System.out.println(n);
        // Recursive call
        countdown(n - 1); 
    }
}
Ein-/Ausgabe und Streams in Java

Beispiel zur Rekursion

  • Beispielverwendung
    public static void main(String[] args) {
      countdown(5);
    }
    
  • Der rekursive Aufruf stoppt beim Basisfall 0
    5
    4
    3
    2
    1
    
Ein-/Ausgabe und Streams in Java

Zusammenfassung

  • extends ermöglicht Vererbung

  • @Override ändert geerbtes Verhalten

  • Recursion zerlegt Probleme in kleinere Schritte

    • Basisfall verhindert endlose Rekursion
Ein-/Ausgabe und Streams in Java

Lass uns üben!

Ein-/Ausgabe und Streams in Java

Preparing Video For Download...