Maison >développement back-end >tutoriel php >Explication détaillée de la différence entre le résumé PHP et l'interface

Explication détaillée de la différence entre le résumé PHP et l'interface

怪我咯
怪我咯original
2017-07-05 10:36:071354parcourir

Cet article est une analyse détaillée et une introduction à la différence entre résumé et interface en PHP. Les amis qui en ont besoin peuvent venir s'y référer. J'espère qu'il sera utile à tout le monde

1. .php InterfaceClasse : interface

En fait, leur fonction est très simple Lorsque plusieurs personnes développent un projet ensemble, elles peuvent toutes appeler certaines classes écrites par d'autres, puis vous. demandera : Comment puis-je nommer la méthode d'implémentation d'une certaine fonction ? À ce stade, la classe d'interface PHP entre en jeu. Lorsque nous définissons une classe d'interface, les méthodes qu'elle contient doivent être implémentées par les sous-classes suivantes. exemple :

Le code est le suivant :

 interface Shop
 {
       public function buy($gid);
       public function sell($gid);
       public function view($gid);
 }

Je déclare une classe d'interface boutique et définis trois méthodes : acheter, vendre et visualiser, puis toutes les sous-classes qui héritent from doit implémenter l'une de ces trois méthodes. Si la sous-classe ne les implémente pas, cela ne fonctionnera pas. En fait, la classe d'interface est, pour parler franchement, le modèle d'une classe et les règlements d'une classe. Si vous appartenez à cette catégorie, vous devez suivre mes règlements, peu importe comment vous le faites, je m'en fiche. comment vous faites. Cela dépend de vous. Des choses comme :

Le code est le suivant :

class BaseShop implements Shop
{
public function buy($gid)
{
echo('你购买了ID为 :'.$gid.'的商品');
}
public function sell($gid)
{
echo('你卖了ID为 :'.$gid.'的商品');
}
public function view($gid)
{
echo('你查看了ID为 :'.$gid.'的商品');
}
}

Pensez-y, dans un grand projet où de nombreuses personnes collaborent, c'est tellement pratique d'avoir des classes d'interface, comme celle-ci. Vous n'avez pas besoin de demander aux autres quel est le nom de la méthode de votre fonction particulière. Bien sûr, si vous aimez ça, je n'y peux rien.

Conclusion : la classe d'interface est le leader d'une classe, indiquant la direction, et la sous-classe doit compléter sa méthode spécifiée.

2.php Classe abstraite : abstract

En fait, les classes abstraites et les classes d'interface sont en partie similaires. Rappelez-vous où vous avez vu. ça ? En une phrase, la classe abstraite extrait la partie de l'image de la classe. Cette phrase a l'air drôle, mais en fait elle dit la vérité de la classe abstraite, c'est que lorsque vous constatez que beaucoup de vos classes utilisent de nombreuses méthodes. , vous continuerez à les utiliser. Si vous écrivez à plusieurs reprises, vous pouvez envisager d'utiliser des classes abstraites. Vous pouvez dire : « Ne m'est-il pas possible de réécrire une classe ? Pour chaque classe publique, j'instancie cette classe publique et. appeler la même méthode." Ici Oui, en fait, c'est ce que font les classes abstraites, mais cela vous évite l'étape d'instanciation, ce qui la rend aussi pratique que d'appeler directement la méthode de cette classe, et vous pouvez également surcharger Cette méthode. Par exemple :

Le code est le suivant :

abstract class BaseShop
  {
      public function buy($gid)
      {
          echo('你购买了ID为 :'.$gid.'的商品');
      }
      public function sell($gid)
      {
          echo('你卖了ID为 :'.$gid.'的商品');
     }
     public function view($gid)
     {
         echo('你查看了ID为 :'.$gid.'的商品');
     }
 }
 class BallShop extends BaseShop
 {
     var $itme_id = null;
     public function construct()
     {
         $this->itme_id = 2314;
     }
     public function open()
     {
         $this->sell($this->itme_id);
     }
 }

Voici un exemple Comme ci-dessus, j'ai défini une classe de magasin et extrait toutes ses parties comme, acheter (acheter), sell ( sell), view, et ces méthodes sont implémentées dans la classe abstraite, puis la sous-classe qui en hérite obtiendra automatiquement ces méthodes, et la sous-classe fera ses propres choses uniques, introduira la duplication du code et améliorera la réutilisabilité.

Conclusion : Une classe abstraite est un fournisseur de services d'une classe. Vous n'êtes pas obligé de les utiliser. Vous pouvez les utiliser quand. vous en avez besoin. Si vous n'êtes pas satisfait si le service n'est pas fourni, vous pouvez toujours le faire vous-même. La méthode de fonction abstraite est quelque peu similaire à l'interface. C'est une méthode déclarée dans la classe parent et doit être implémentée dans la sous-classe. Cependant, les méthodes non déclarées avec abstract deviendront des méthodes publiques de la sous-classe. dans la sous-classe

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