Maison  >  Article  >  développement back-end  >  Explication détaillée des classes abstraites php

Explication détaillée des classes abstraites php

小云云
小云云original
2018-03-15 10:09:521882parcourir

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 :

  1. Lors de l'héritage d'une classe abstraite, la sous-classe doit définir toutes les méthodes abstraites dans la classe parent

  2. 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).

  3. 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 différences entre les classes abstraites php et les interfaces et sélection d'exemples

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn