Java — Héritage (Inheritance)
L’héritage est un pilier de la programmation orientée objet. Il permet à une classe de réutiliser et d’étendre le comportement d’une autre.
1. Idée simple
Une classe peut hériter d’une autre
➡️ elle récupère ses attributs et méthodes
2. Héritage de classe
class Animal {
void speak() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
void bark() {
System.out.println("Bark");
}
}
Dog hérite de Animal
Règle importante
Java n’autorise qu’un seul héritage de classe
class A {}
class B {}
// ❌ interdit
class C extends A, B {}
3. Interfaces (héritage multiple)
Une classe peut implémenter plusieurs interfaces
interface Flyable {
void fly();
}
interface Swimmable {
void swim();
}
class Duck implements Flyable, Swimmable {
public void fly() {}
public void swim() {}
}
héritage multiple possible avec interfaces
4. Classe + Interface
Une classe peut :
- hériter d’une classe
- implémenter des interfaces
class Animal {}
interface Runnable {}
class Dog extends Animal implements Runnable {
public void run() {}
}
combinaison très courante
5. Pourquoi cette règle ?
Java interdit héritage multiple de classes pour éviter :
- conflits de méthodes
- ambiguïtés (diamond problem)
les interfaces sont plus sûres
Pièges fréquents
- croire qu’on peut hériter de plusieurs classes
- oublier
implementspour interface - confusion entre
extendsetimplements
6. Questions classiques
Q1
Java supporte héritage multiple de classes ? Non
Q2
plusieurs interfaces possibles ? Oui
Q3
classe + interface possible ? Oui
7. À retenir
- 1 seule classe (extends)
- plusieurs interfaces (implements)
- combinaison possible
🧾 En résumé
- héritage permet la réutilisation
- Java limite l’héritage de classes
- interfaces offrent de la flexibilité
C’est une base essentielle pour comprendre la POO en Java.