Maison  >  Article  >  développement back-end  >  Interface PHP avec héritage multiple et méthode tarits pour obtenir des compétences effect_php en héritage multiple

Interface PHP avec héritage multiple et méthode tarits pour obtenir des compétences effect_php en héritage multiple

jacklove
jackloveoriginal
2018-07-02 18:01:461828parcourir

Cet article présente principalement la méthode de multi-héritage et de tarits de l'interface PHP pour obtenir un effet multi-héritage. Il analyse le multi-héritage basé sur l'interface PHP et les techniques de fonctionnement simples des tarits introduites dans PHP5.4 pour réaliser le multi-héritage. fonction sous forme d'exemples. Les amis peuvent se référer à

Cet article décrit l'exemple d'héritage multiple des interfaces PHP et la méthode pour obtenir des effets d'héritage multiples par tarits. Partagez-le avec tout le monde pour votre référence, comme suit :

Héritage multiple d'interface

Dans l'interface orientée objet de PHP, les interfaces peuvent hériter d'interfaces. Les classes PHP ne peuvent hériter que d'une seule classe parent (héritage unique), mais les interfaces peuvent implémenter plusieurs héritages et hériter d'une ou plusieurs interfaces. Bien sûr, l'héritage d'interface utilise le mot-clé extends tout comme l'héritage de classe. Si vous souhaitez plusieurs héritages, séparez simplement les interfaces héritées par des virgules.

Il convient de noter que lorsque votre interface hérite d'autres interfaces, elle hérite directement des attributs constants statiques et des méthodes abstraites de l'interface parent, la classe doit donc implémenter toutes les méthodes abstraites pertinentes lors de l'implémentation de l'interface.

Ce qui suit est un exemple :

1. Hériter d'une interface unique

<?php
interface testA{
  function echostr();
}
interface testB extends testA{
  function dancing($name);
}
class testC implements testB{
  function echostr(){
    echo "接口继承,要实现所有相关抽象方法!";
    echo "<br>";
  }
  function dancing($name){
    echo $name."正在跳舞!";
  }
}
$demo=new testC();
$demo->echostr();
$demo->dancing("模特");
//运行结果
/**
  接口继承,要实现所有相关抽象方法
  模特正在跳舞!
**/

2. Hériter de plusieurs interfaces

<?php
interface testA{
  function echostr();
}
interface testB{
  function dancing($name);
}
interface testC extends testA,testB{
  function singing($nickname);
}
class testD implements testC{
  function echostr(){
    echo "接口继承,要实现父接口所有相关方法!";
    echo "<br />";
  }
  function dancing($name){
    echo $name."正在跳舞!";
    echo "<br />";
  }
  function singing($nickname){
    echo $nickname."正在唱歌!";
  }
}
$demo=new testD();
$demo->echostr();
$demo->dancing("模特");
$demo->singing("周杰伦");
//运行结果
/**
  接口继承,要实现父接口所有相关方法!
  模特正在跳舞!
  周杰伦正在唱歌!
**/

tarits héritage multiple

Dans l'héritage multiple, une classe peut hériter de plusieurs classes parents en même temps. La fonction de combinaison de plusieurs classes parents est utilisée en C++ pour améliorer la flexibilité de l'intégration. Cependant, l'héritage multiple est trop flexible et apportera. " "Héritage diamant", il y a donc de nombreuses difficultés à l'utiliser, et le modèle est devenu plus compliqué. Désormais, la plupart des langages ont abandonné le modèle d'héritage multiple.
Mais parfois, je veux utiliser l'héritage multiple, mais PHP n'a pas d'héritage multiple, alors j'ai inventé une telle chose.

Les Traits peuvent être compris comme un ensemble de méthodes qui peuvent être appelées par différentes classes, mais les Traits ne sont pas des classes ! Ne peut pas être instancié. Jetons un coup d'œil à la syntaxe avec un exemple :

<?php
trait myTrait{
  function traitMethod1(){}
  function traitMethod2(){}
}
//然后是调用这个traits,语法为:
class myClass{
  use myTrait;
}
//这样就可以通过use myTraits,调用Traits中的方法了,比如:
$obj = new myClass();
$obj-> traitMethod1 ();
$obj-> traitMethod2 (); 
>

Pour une introduction et une utilisation spécifiques, veuillez consulter l'introduction officielle.

Articles qui pourraient vous intéresser :

Explication détaillée de l'utilisation de cache() du fonctionnement cohérent de la base de données du framework thinkPHP5

Explication sur la façon d'implémenter des styles personnalisés de pagination dans thinkPHP3.2

Exemple d'analyse de la fonction de téléchargement multi-images implémentée par le framework Laravel + Blob

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