Polymorphisme
Découvrez la redéfinition des méthodes et le comportement dynamique en programmation orientée objet
Polymorphisme est une leçon PHP Academy gratuite sur CoddyKit. Ceci est la leçon 5 sur 5. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage PHP Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours PHP Academy comprend 5 leçons au total.
Le polymorphisme en PHP
Le polymorphisme en PHP
Bienvenue dans cette leçon sur le polymorphisme ! Vous allez découvrir comment le polymorphisme permet aux objets de prendre différentes formes et favorise la création d'un code souple et réutilisable en PHP. Plongeons-nous dans le sujet !

Qu'est-ce que le polymorphisme ?
Qu'est-ce que le polymorphisme ?
Le polymorphisme permet aux objets de prendre plusieurs formes. En PHP, cela signifie qu'une méthode peut se comporter différemment selon l'objet qui l'appelle. Cela est rendu possible par la redéfinition de méthodes ou l'implémentation d'une interface.
Point essentiel : Le polymorphisme simplifie le code et en améliore la souplesse en permettant à une même méthode d'effectuer différentes tâches selon le contexte.
Polymorphisme par redéfinition de méthodes
Polymorphisme par redéfinition de méthodes
Lorsqu'une classe enfant redéfinit une méthode de la classe parente, elle fournit sa propre implémentation. Exemple :
Point essentiel : La redéfinition de méthodes permet à différentes classes de définir un comportement spécifique pour une même méthode.
<?php
class Animal {
public function speak() {
echo "The animal makes a sound.";
}
}
class Dog extends Animal {
public function speak() {
echo "The dog barks.";
}
}
class Cat extends Animal {
public function speak() {
echo "The cat meows.";
}
}
$animals = [new Dog(), new Cat()];
foreach ($animals as $animal) {
$animal->speak();
echo "<br>";
}
?>
Polymorphisme au moyen d'interfaces
Polymorphisme au moyen d'interfaces
Les interfaces définissent un contrat que les classes doivent respecter pour implémenter certaines méthodes. Cela garantit que toutes les classes qui les implémentent définissent les méthodes requises. Exemple :
Conseil : Les interfaces contribuent à imposer une certaine cohérence entre les classes.
<?php
interface Shape {
public function calculateArea();
}
class Circle implements Shape {
private $radius;
public function __construct($radius) {
$this->radius = $radius;
}
public function calculateArea() {
return pi() * pow($this->radius, 2);
}
}
class Rectangle implements Shape {
private $width, $height;
public function __construct($width, $height) {
$this->width = $width;
$this->height = $height;
}
public function calculateArea() {
return $this->width * $this->height;
}
}
$shapes = [new Circle(5), new Rectangle(4, 6)];
foreach ($shapes as $shape) {
echo "Area: " . $shape->calculateArea() . "<br>";
}
?>
Avantages du polymorphisme
Avantages du polymorphisme
Le polymorphisme offre plusieurs avantages :
- Il favorise la réutilisation du code.
- Il rend votre code plus souple et évolutif.
- Il simplifie l'ajout de nouvelles classes et fonctionnalités.
Exemple : L'ajout d'une nouvelle forme dans l'exemple précédent nécessite d'implémenter l'interface Shape et de définir la méthode calculateArea().
Polymorphisme avec des classes abstraites
Polymorphisme avec des classes abstraites
Les classes abstraites peuvent également servir à mettre en œuvre le polymorphisme. Les classes enfants redéfinissent les méthodes abstraites afin de fournir des implémentations spécifiques. Exemple :
Point essentiel : Les classes abstraites imposent une structure de base tout en permettant le polymorphisme.
<?php
abstract class Vehicle {
abstract public function start();
}
class Car extends Vehicle {
public function start() {
echo "Car engine starts.<br>";
}
}
class Motorcycle extends Vehicle {
public function start() {
echo "Motorcycle engine starts.<br>";
}
}
$vehicles = [new Car(), new Motorcycle()];
foreach ($vehicles as $vehicle) {
$vehicle->start();
}
?>
Applications concrètes
Applications concrètes
Le polymorphisme est largement utilisé dans le développement logiciel :
- Traitement des paiements : Différents modes de paiement (carte de crédit, PayPal) implémentent la même interface.
- Développement de jeux : Différents types de personnages redéfinissent la même méthode pour produire un comportement unique.
- Systèmes de journalisation : Plusieurs mécanismes de journalisation (fichier, base de données) utilisent la même interface.
Point essentiel : Le polymorphisme contribue à créer des systèmes évolutifs et faciles à maintenir.
Difficultés liées au polymorphisme
Difficultés liées au polymorphisme
Bien que le polymorphisme soit puissant, il présente certaines difficultés :
- Il peut accroître la complexité s'il n'est pas correctement mis en œuvre.
- Il exige une planification rigoureuse des hiérarchies de classes et des interfaces.
- Il peut entraîner des erreurs à l'exécution si les méthodes redéfinies ne sont pas correctement implémentées.
Conseil : Vérifiez toujours soigneusement le comportement polymorphe afin d'en garantir le bon fonctionnement.
Excellent travail !
Excellent travail !
Félicitations ! Vous avez découvert le polymorphisme, notamment sa mise en œuvre au moyen de la redéfinition de méthodes, des interfaces et des classes abstraites. Le polymorphisme est un outil puissant pour créer un code souple et réutilisable. Dans la prochaine leçon, nous étudierons plus en détail l'utilisation des classes abstraites. Poursuivons notre apprentissage du code !

Questions Fréquemment Posées
La leçon « Polymorphisme » est-elle gratuite ?
Oui — le texte complet de « Polymorphisme » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours PHP Academy, passe à CoddyKit PRO. Le cours PHP Academy comprend 5 leçons au total.
Qu'est-ce que j'apprendrai dans « Polymorphisme » ?
Découvrez la redéfinition des méthodes et le comportement dynamique en programmation orientée objet Tu pratiques PHP Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer PHP Academy ?
Aucune expérience préalable n'est requise. PHP Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 5 sur 5.
Combien de temps prend la leçon « Polymorphisme » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon PHP Academy ?
Oui. Chaque leçon PHP Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Introduction à la programmation orientée objet en PHP
- Définir des classes et des objets
- Héritage
- Encapsulation et modificateurs d’accès
- Polymorphisme