Introduction à la redéfinition de méthodes et à la récursion

Entrées/Sorties et flux en Java

Alex Liu

Software Development Engineer

Définir une classe de base

  • La classe Animal représente un animal générique
    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
Entrées/Sorties et flux en Java

Comprendre l'héritage : extends

// Utilisez `extends` pour créer une sous-classe de `Animal` nommée `Dog`
class Dog extends Animal {
    void bark() {System.out.println("Bark");}
}
public static void main(String[] args) {
    Dog d = new Dog(); // Crée une instance de Dog qui étend Animal
    d.makeSound();
    d.bark();
}
  • Affichez les deux sons, chacun sur sa ligne :
Animal sound
Bark
Entrées/Sorties et flux en Java

Redéfinition de méthodes en Java

class Cat extends Animal {
    @Override // Utilisez `@Override` pour redéfinir le comportement de `.makeSound()`
    void makeSound() {
        System.out.println("Meow");
    }
}
public static void main(String[] args) {
    Cat c = new Cat(); // Crée une instance de Cat qui étend Animal
    c.makeSound(); // Appelle la méthode redéfinie `makeSound()`
}
Meow
Entrées/Sorties et flux en Java

Comprendre la récursion

  • Une méthode qui s'appelle elle-même pour résoudre un problème
  • Nécessite un cas de base pour éviter la récursion infinie
public class RecursionExample {
    static void countdown(int n) {
        // Base case
        if (n == 0) return; 
        System.out.println(n);
        // Recursive call
        countdown(n - 1); 
    }
}
Entrées/Sorties et flux en Java

Exemple d'utilisation de la récursion

  • Exemple d'utilisation
    public static void main(String[] args) {
      countdown(5);
    }
    
  • L'appel récursif s'arrête en atteignant le cas de base : 0
    5
    4
    3
    2
    1
    
Entrées/Sorties et flux en Java

Récapitulatif

  • extends active l'héritage

  • @Override modifie le comportement hérité

  • La récursion découpe un problème en étapes plus petites

    • Le cas de base évite la récursion infinie
Entrées/Sorties et flux en Java

Passons à la pratique !

Entrées/Sorties et flux en Java

Preparing Video For Download...