Leçon 20 : Pillier 2 de l'OOP : Les bases de l'Héritage
L'Héritage est un mécanisme par lequel une classe acquiert les propriétés et les comportements (champs et méthodes) d'une autre classe. Il favorise la réutilisation du code et établit une relation de type "est un" (ex: Un Chien est un Mammifère).
Terminologie
- Classe parente (Super-classe) : La classe dont on hérite.
- Classe enfant (Sous-classe) : La classe qui hérite de la parente.
Implémentation de l'héritage (extends)
En Java, une classe enfant utilise le mot-clé extends pour hériter d'une classe parente. Java ne supporte que l'héritage simple (une classe ne peut étendre qu'une seule autre classe).
java // Super-classe public class Animal { public void eat() { System.out.println("Cet animal mange de la nourriture."); }
public void sleep() {
System.out.println("L'animal dort.");
}
}
// La sous-classe hérite des propriétés et méthodes d'Animal public class Dog extends Animal { public void bark() { System.out.println("Le chien aboie."); } }
Avantages de l'héritage
- Réutilisation du code : Les méthodes écrites dans la classe parente (comme
eat()etsleep()) n'ont pas besoin d'être réécrites dans la classe enfant (Dog). - Polymorphisme : Un objet Dog peut être traité comme un objet Animal (abordé plus tard).
Utilisation
java Dog myDog = new Dog(); myDog.bark(); // Défini dans Dog myDog.eat(); // Hérité d'Animal myDog.sleep(); // Hérité d'Animal
Important : Les constructeurs, les membres privés et les membres statiques ne sont généralement pas hérités au sens traditionnel. Les champs privés existent dans la sous-classe, mais ils ne sont pas accessibles directement.