Maison  >  Article  >  développement back-end  >  Comment comprendre le polymorphisme php

Comment comprendre le polymorphisme php

王林
王林original
2019-10-10 17:51:043784parcourir

Comment comprendre le polymorphisme php

Le polymorphisme signifie que la même opération, fonction ou processus peut être appliqué à plusieurs types d'objets et obtenir des résultats différents. Différents objets peuvent produire des résultats différents lorsqu'ils reçoivent le même message. Ce phénomène est appelé polymorphisme.

Le polymorphisme permet à chaque objet de répondre à sa manière à un message commun. Le polymorphisme améliore la flexibilité et la réutilisabilité des logiciels.

1. Qu'est-ce que le polymorphisme ?

Polymorphisme signifie littéralement « formes multiples ». Il peut être compris comme plusieurs formes d'expression, c'est-à-dire « une interface externe et plusieurs méthodes de mise en œuvre internes ». Dans la théorie orientée objet, la définition générale du polymorphisme est la suivante : la même opération produira des résultats d'exécution différents lorsqu'elle sera appliquée à des instances de classes différentes. Autrement dit, lorsque des objets de types différents reçoivent le même message, ils obtiendront des résultats différents.

Dans le développement d'applications réels, la principale raison de l'utilisation du polymorphisme orienté objet est que différents objets de sous-classe peuvent être traités comme une seule classe parent et que les différences qui existent entre les différents objets de sous-classe peuvent être masquées. coder et élaborer une programmation commune pour s'adapter à l'évolution des besoins.

2. Conception d'applications polymorphes

Dans le développement d'applications réelles, généralement afin de permettre au projet de s'étendre et de se mettre à niveau facilement à l'avenir, il est nécessaire de mettre en œuvre des applications réutilisables. modules via héritage pour des mises à niveau faciles. Lors de la conception de modules réutilisables, il est nécessaire de réduire autant que possible l’utilisation d’instructions de contrôle de flux. À ce stade, vous pouvez utiliser le polymorphisme pour implémenter ce type de conception.

Exemple :

class painter{ //定义油漆工类
public function paintbrush(){ //定义油漆工动作
echo "油漆工正在刷漆!\n";
}
}
class typist{ //定义打字员类
public function typed(){ //定义打字员工作
echo "打字员正在打字!\n";
}
}
function printworking($obj){ //定义处理类
if($obj instanceof painter){ //若对象是油漆工类,则显示油漆工动作
$obj->paintbrush();
}elseif($obj instanceof typist){ //若对象是打字员类,则显示打字员动作
$obj->typed();
}else{ //若非以上类,则显示出错信息
echo "Error: 对象错误!";
}
}
printworking(new painter()); //显示员工工作
printworking(new typist()); //显示员工工作

Analyse : Dans le programme ci-dessus, deux classes d'employés sont d'abord définies : la classe peintre et la classe dactylographe. Définissez ensuite une fonction de traitement. Dans cette fonction, il est déterminé si l'employé est un employé défini et son statut de travail est imprimé. Les résultats sont présentés ci-dessous.

Le peintre peint
La dactylo tape

Il ressort facilement du programme ci-dessus que si vous souhaitez afficher le statut de travail de plusieurs employés, vous devez d'abord définir la classe d'employés. Et définissez le travail de l'employé dans la classe d'employés, puis ajoutez une instruction elseif dans la fonction printworking() pour vérifier à quelle classe d'employés appartient l'objet. Ceci est très indésirable dans les applications pratiques. Si le polymorphisme est utilisé à ce stade, ce problème peut être facilement résolu.

Tutoriel recommandé : Tutoriel vidéo 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