Maison >développement back-end >tutoriel php >Interface PHP avec héritage multiple et méthode tarits pour obtenir plusieurs détails du didacticiel sur les effets d'héritage

Interface PHP avec héritage multiple et méthode tarits pour obtenir plusieurs détails du didacticiel sur les effets d'héritage

jacklove
jackloveoriginal
2018-05-22 17:30:111588parcourir

L'exemple de cet article décrit la méthode d'héritage multiple de l'interface PHP et des tarits pour obtenir l'effet d'héritage multiple. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

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 seule interface

i

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

2. >

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 "
";
 
}
 
function dancing($name){
 
echo $name."正在跳舞!";
 
echo "
";
 
}
 
function singing($nickname){
 
echo $nickname."正在唱歌!";
 
}
 
}
 
$demo=new testD();
 
$demo->echostr();
 
$demo->dancing("模特");
 
$demo->singing("周杰伦");
 
//运行结果
 
/**
 
接口继承,要实现父接口所有相关方法!
 
模特正在跳舞!
 
周杰伦正在唱歌!
 
**/

héritage multiple tarits

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 ce modèle utilisé en C++ pour améliorer. la flexibilité de l'intégration. , mais l'héritage multiple est trop flexible et apportera un "héritage diamant", il est donc difficile à utiliser et le modèle devient compliqué. Maintenant, 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. Ils ne peuvent pas être instanciés ! Jetons un coup d'œil à la syntaxe avec un exemple :

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

L'exemple de cet article décrit la méthode d'héritage multiple des interfaces PHP et des tarits pour obtenir l'effet d'héritage multiple. Pour plus de connaissances connexes, veuillez prêter attention au site Web PHP chinois.

Recommandations associées :

Questions fréquemment rencontrées lors des entretiens d'inversion de chaînes PHP


Comment obtenir un flux de caractères en PHP Le premier caractère non répétitif en


PHP utilise une ligne de code pour supprimer tous les fichiers du répertoire

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