5. Polymorphisme
Il existe deux types principaux :
-
Polymorphisme statique (Surcharge) : Plusieurs méthodes du même nom peuvent coexister dans une classe, à condition que leurs paramètres diffèrent (nombre, type ou ordre).
public int addition(int a, int b) { return a + b; } public double addition(double a, double b) { return a + b; } -
Polymorphisme dynamique (Redéfinition) : Une sous-classe peut redéfinir une méthode héritée pour adapter ou étendre son comportement. La décision sur la méthode à exécuter est prise à l’exécution (binding dynamique).
Personne p = new Employe("Bob", 40, 3500.0); p.saluer(); // Appelle la version redéfinie dans Employe
6. Abstraction
Cours Abstraits
- Une classe abstraite ne peut être instanciée directement (
new Animal()est interdit). - Elle peut contenir des méthodes abstraites (sans corps, juste la signature) que les sous-classes doivent implémenter.
public abstract class Animal {
public abstract void crier(); // Méthode abstraite
public void dormir() {
System.out.println("L'animal dort.");
}
}
public class Chien extends Animal {
@Override
public void crier() {
System.out.println("Le chien aboie.");
}
}
Interfaces
- Une interface définit un contrat (ensemble de méthodes publiques) sans implémentation (avant Java 8).
- Une classe peut implémenter plusieurs interfaces (
implements).
public interface Volant {
void voler();
}
public class Avion implements Volant {
@Override
public void voler() {
System.out.println("L'avion décolle et vole.");
}
}
Exercice 3 : Utilisation d’une interface
Objectif :
Créer une interface Volant avec une méthode voler(). Implémenter cette interface dans deux classes, Avion et Oiseau, avec des implémentations différentes. Dans le main, instanciez ces classes et appelez leur méthode voler().
Solution :
// Définition de l'interface Volant
public interface Volant {
void voler();
}
// Classe Avion qui implémente Volant
public class Avion implements Volant {
@Override
public void voler() {
System.out.println("L'avion décolle et vole dans le ciel !");
}
}
// Classe Oiseau qui implémente Volant
public class Oiseau implements Volant {
@Override
public void voler() {
System.out.println("L'oiseau s'envole et plane dans les airs !");
}
}
// Classe de test
public class TestVolant {
public static void main(String[] args) {
Volant avion = new Avion();
Volant oiseau = new Oiseau();
avion.voler();
oiseau.voler();
}
}
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur 5. Polymorphisme. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.