Dans la programmation orientée objet, l'héritage est le mécanisme de base pour la réutilisation et l'extension du code. Grâce à l'héritage, les sous-classes peuvent utiliser directement les propriétés et méthodes existantes de la classe parent sans avoir à réécrire la même logique, ce qui rend la structure du code plus concise et efficace.
class Person {
protected $name;
protected $age;
public function __construct($name, $age) {
$this->name = $name;
$this->age = $age;
}
public function getName() {
return $this->name;
}
public function getAge() {
return $this->age;
}
}
class Student extends Person {
private $school;
public function __construct($name, $age, $school) {
parent::__construct($name, $age);
$this->school = $school;
}
public function getSchool() {
return $this->school;
}
}
$student = new Student("John Doe", 20, "Harvard University");
echo $student->getName(); // John Doe
echo $student->getAge(); // 20
echo $student->getSchool(); // Harvard UniversityDans l'exemple ci-dessus, la classe Person en tant que classe parent fournit des propriétés et des méthodes de base, et la classe Student étend les fonctionnalités de la classe parent via l'héritage et ajoute un nouvel attribut $school . De cette façon, la sous-classe non seulement réutilise la logique de la classe parent, mais peut également étendre de manière flexible son propre comportement.
Le polymorphisme permet à différentes classes d'implémenter la même interface de méthode de différentes manières, rendant le programme plus flexible et extensible. En PHP, le polymorphisme est généralement implémenté via le remplacement de méthode (Override).
class Animal {
protected $name;
public function __construct($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function speak() {
echo "Animal speaks.";
}
}
class Cat extends Animal {
public function speak() {
echo "Meow!";
}
}
class Dog extends Animal {
public function speak() {
echo "Woof!";
}
}
$animals = [new Cat("Kitty"), new Dog("Buddy")];
foreach ($animals as $animal) {
echo $animal->getName() . ": ";
$animal->speak();
echo "<br>";
}L'exemple ci-dessus montre le polymorphisme en action. Bien que les classes Cat et Dog héritent toutes deux d’Animal, elles remplacent chacune la méthode speak() . Lorsque cette méthode est appelée, différents résultats seront générés en fonction du type d'objet réel, reflétant ainsi la flexibilité du polymorphisme.
Dans les projets réels, l'héritage et le polymorphisme peuvent grandement améliorer la maintenabilité et l'évolutivité du code. Les scénarios d'application courants incluent :
L'héritage et le polymorphisme sont des points de support importants de la programmation orientée objet PHP. L'héritage permet de modulariser et de réutiliser le code, tandis que le polymorphisme permet aux programmes d'avoir des capacités d'extension flexibles. Comprendre et maîtriser ces deux fonctionnalités peut aider les développeurs à créer des applications plus lisibles, maintenables et évolutives.