36. Héritage : Étendre les Classes
L'héritage permet à une classe (Classe Enfant) de réutiliser les propriétés et les méthodes définies dans une autre classe (Classe Parent). Ceci est réalisé à l'aide du mot-clé extends.
Classes Parent et Enfant
php
<?php class Vehicle { // Classe Parent / Classe de Base protected $speed = 0; public function accelerate($amount) { $this->speed += $amount; } public function getSpeed() { return $this->speed; } } class Truck extends Vehicle { // Classe Enfant / Classe Dérivée public function loadCargo() { echo "Le camion charge la cargaison...\n"; } // La classe Truck hérite d'accelerate() et getSpeed() } $myTruck = new Truck(); $myTruck->loadCargo(); $myTruck->accelerate(50); echo "Vitesse actuelle : " . $myTruck->getSpeed(); // Résultat : 50 ?>Surcharge de Méthodes (Overriding)
Une classe enfant peut définir une méthode portant exactement le même nom qu'une méthode parent. Cela surcharge l'implémentation du parent pour cette instance spécifique de la classe enfant.
php
<?php class Car extends Vehicle { public function accelerate($amount) { // Ajouter un comportement spécifique à Car avant l'accélération echo "Changement de vitesse...\n"; parent::accelerate($amount); // Appeler la méthode accelerate du parent } } $myCar = new Car(); $myCar->accelerate(30); // Résultat : Changement de vitesse... Vitesse actuelle : 30 ?>- Nous utilisons
parent::methodName()pour appeler la méthode originale du parent à partir de la méthode enfant surchargée.