Classe abstraite PHP
Les classes abstraites sont des classes avec au moins une méthode abstraite. Ce tutoriel montre comment créer et utiliser des classes abstraites en PHP.
Classe abstraite PHP
En PHP, les classes abstraites sont déclarées à l’aide du mot clé abstract
, contrairement au C++. La classe abstraite doit contenir au moins une méthode abstraite sans aucun code réel ; cette méthode n’a que le nom et les paramètres déclarés avec le mot clé abstract
.
Le but d’une classe abstraite est de fournir le type de modèle dont hériter et de forcer la classe héritante à implémenter les méthodes abstraites. La classe abstraite est quelque chose entre l’interface pure et une classe régulière.
L’interface peut également être un cas particulier de classes abstraites où chaque méthode est abstraite. La classe abstraite ne peut jamais être instanciée, et si une classe contient une méthode abstraite, cette classe doit être abstraite.
La syntaxe de la classe abstraite est :
<?php
abstract class Demo
{
abstract function Method_Name(Parameters);
}
?>
Cette syntaxe crée une classe abstraite avec la méthode abstraite Method_Name
.
Essayons un exemple pour une classe abstraite en PHP :
<?php
// Parent abstract class
abstract class Employee {
public $Employee_Name;
public function __construct($Employee_Name) {
$this->name = $Employee_Name;
}
abstract public function intro() : string;
}
// Child classes
class Jack extends Employee {
public function intro() : string {
return "Hello I am Project Manager at Delftstack! My Name is $this->name!";
}
}
class Michelle extends Employee {
public function intro() : string {
return "Hi I am Human Resource Manager at Delftstack! My Name is $this->name!";
}
}
class John extends Employee {
public function intro() : string {
return "Hey I am a Senior Developer at Delftstack! My Name is $this->name!";
}
}
// Create objects from the child classes of abstract class
$Jack = new Jack("Jack");
echo $Jack->intro();
echo "<br>";
$Michelle = new Michelle("Michelle");
echo $Michelle->intro();
echo "<br>";
$John = new John("John");
echo $John->intro();
?>
Jack, Michelle et John sont hérités de la classe abstraite Employee
, ce qui signifie qu’ils peuvent utiliser la propriété publique Employee_Name
et la méthode publique __construct
de la classe abstraite Employee
uniquement à cause de l’héritage. Mais intro()
est la méthode abstraite, c’est pourquoi elle est définie dans toutes les classes.
Voir la sortie pour le code :
Hello I am Project Manager at Delftstack! My Name is Jack!
Hi I am Human Resource Manager at Delftstack! My Name is Michelle!
Hey I am a Senior Developer at Delftstack! My Name is John!
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn Facebook