PHP 5 prend en charge les classes abstraites et les méthodes abstraites. Les classes définies comme abstraites ne peuvent pas être instanciées. Toute classe doit être déclarée abstraite si au moins une méthode qu'elle contient est déclarée abstraite. Une méthode définie comme abstraite déclare uniquement sa méthode appelante (paramètres) et ne peut pas définir son implémentation de fonction spécifique.
Remarque :
Lors de l'héritage d'une classe abstraite, la sous-classe doit définir toutes les méthodes abstraites dans la classe parent
De plus, le contrôle d'accès de ces méthodes doit être le même que dans la classe parent (ou plus assoupli).
La méthode d'appel doit correspondre, c'est-à-dire que le type et le nombre de paramètres requis doivent être cohérents.
Exemple :
<?phpabstract class AbstractClass{ // 我们的抽象方法仅需要定义需要的参数 abstract protected function prefixName($name);}class ConcreteClass extends AbstractClass{ // 我们的子类可以定义父类签名中不存在的可选参数 // 该访问控制只能是公有的(public)或受保护(protected)的 public function prefixName($name, $separator = ".") { if ($name == "Pacman") { $prefix = "Mr"; } elseif ($name == "Pacwoman") { $prefix = "Mrs"; } else { $prefix = ""; } return "{$prefix}{$separator} {$name}"; } }$class = new ConcreteClass;echo $class->prefixName("Pacman"), "\n";echo $class->prefixName("Pacwoman"), "\n";?>
Résultat :
Mr. Pacman Mrs. Pacwoman
Analyse :
Bien que la sous-classe soit définie Un paramètre facultatif, qui n'est pas inclus dans la déclaration de la méthode abstraite de la classe parent, mais n'entre pas en conflit avec le troisième point de la note
Recommandations associées :
Classe abstraite php Explication détaillée de la méthode d'implémentation
Explication détaillée des exemples de fonctionnalités de classe abstraite php
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!