Maison >développement back-end >tutoriel php >Utilisation de classes abstraites et d'interfaces en PHP

Utilisation de classes abstraites et d'interfaces en PHP

小云云
小云云original
2018-03-27 15:36:591804parcourir

Cet article partage principalement avec vous l'utilisation des classes et interfaces abstraites en PHP. J'espère qu'il pourra vous aider. Partageons d'abord avec vous le concept de méthodes abstraites.

1. Méthode abstraite

Dans une classe, une méthode sans corps de méthode est une méthode abstraite.

nom de la méthode de la fonction de visibilité abstraite (paramètre 1,...); // Si la visibilité n'est pas explicitement spécifiée, la valeur par défaut est publique

comme :

public function hello($args);
abstract function work();            // 修饰符abstract,也可以省略

2. Classe abstraite

classe abstraite nom de classe {

Attribut ;

Méthode ;

Méthode abstraite ;

}

Caractéristiques des classes abstraites :

  • Les classes abstraites ne peuvent pas être instanciées et ne peuvent être héritées.

  • Les classes abstraites n'ont pas nécessairement de méthodes abstraites. Une classe avec des méthodes abstraites doit être une classe abstraite.

  • La visibilité de la méthode abstraite ne peut pas être privée

  • La méthode abstraite dans la sous-classe doit être être réécrit.

Quand devez-vous utiliser des classes abstraites ?

  • Il existe une méthode, mais je ne sais pas comment écrire le corps de la méthode Lorsque cette méthode doit être incluse dans la sous-classe, elle est encapsulée dans une méthode abstraite. et la classe est une classe abstraite.

  • Lorsque certaines méthodes doivent être encapsulées dans la sous-classe de contrôle, des méthodes abstraites peuvent être utilisées.

  • Quand il est nécessaire de contrôler une classe qui ne peut être qu'héritée et ne peut pas être instanciée.

Exemple :

Déclarez un humain avec une méthode abstraite qui fonctionne.

Déclarez une classe de conférencier php et remplacez la méthode pour qu'elle fonctionne.

  abstract class People{
        protected $age=22;
        public $height=1.70;
        abstract function work();
    }
    class PhpTeacher extends People{
        function work(){
            echo "真不是php";
        }
    }

3. Interface

Si toutes les méthodes d'une classe sont des méthodes abstraites et n'ont aucun attribut de membre, alors ces classes sont appelées. interfaces.

interface Common{
    abstract function work();
    abstract function test($args);
}

Le rôle des interfaces : bien que les classes PHP aient un héritage unique, l'héritage multiple peut être obtenu via les interfaces.

Héritage d'interface (étend):

  • L'interface hérite de l'interface le nom de l'interface de l'interface étend le nom de l'interface parent

Remarque : l'héritage de classe est un héritage unique (il ne peut y avoir qu'une seule classe parent), mais l'héritage de l'interface est un héritage multiple, et l'implémentation de l'interface par la classe est également une implémentation multiple.

Implémentations d'interface :

  • La classe implémente la classe d'interface Le nom de classe implémente le nom de l'interface 1, le nom de l'interface 2, ...

La classe héritée implémente l'interface en même temps :

  • La classe hérite de la classe parent et implémente l'interface en même temps classe le nom de la classe étend le nom de la classe parent implémente le nom de l'interface

4. La différence entre les classes abstraites et les interfaces

  • Une interface est une classe abstraite spéciale qui contient uniquement une méthode abstraite, aucune propriété de membre.

  • Lorsqu'une classe implémente une interface (implémente), elle doit implémenter entièrement toutes les méthodes de l'interface lorsqu'une classe hérite (étend ) une classe abstraite, réécrivez simplement les méthodes abstraites dont vous avez besoin.

  • Les classes abstraites ne peuvent avoir qu'un seul héritage, mais les interfaces ont un héritage multiple, et l'implémentation de l'interface par la classe est également une implémentation multiple.

Recommandations associées :

résumé php Explication détaillée des classes

Explication détaillée des classes et interfaces abstraites en PHP

Classes et interfaces abstraites en 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