Maison > Article > développement back-end > Polymorphisme en PHP
Cet article présente principalement le polymorphisme en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.
Définition polymorphe : ne se soucie que d'une interface ou d'une classe de base, pas de la classe spécifique d'un objet. (Même type, résultats différents)
Voici deux exemples :
Premièrement, nous avons constaté que la classe de base définit le standard et que la sous-classe implémente ses propres règles. C'est une exigence du polymorphisme. En même temps, il s'agit de satisfaire à la réécriture ; en fait, il s'agit d'une performance différente de différentes classes, cela ne satisfait pas strictement à une programmation d'interface ou de classe de base ; Parce que quand vous appelez ce n'est pas stu->showGrade() mais chacune de ses propres méthodes
class stu{ public function showGrade(){ echo "base class"; } } class xiaomin extends stu{ public function showGrade(){ echo "is son show 80"; } } class xiaoli extends stu{ public function showGrade(){ echo "is son show 60"; } } function doit($obj){ if(get_class($obj) != "stu"){ $obj->showGrade(); } } doit(new xiaoli()); doit(new xiaomin());
La seconde ; un exemple : le paramètre dovoice spécifie $obj comme animal, ce qui signifie que l'objet de classe d'implémentation est accepté via l'interface. Une transformation vers le haut. Ceci est cohérent avec le même type mais des résultats différents, ce qui est du polymorphisme ;
En fait, en Java, ce sera animal a = new dog(); Il n'existe aucun mécanisme de conversion d'objet.
interface animal{ public function voice(); } class cat implements animal{ public function voice(){ echo "miao~~~<br>"; } } class dog implements animal{ public function voice(){ echo "wang ~~~<br>"; } } function dovoice(animal $obj){ $obj->voice(); } dovoice(new dog()); dovoice(new cat());
Résumé : Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
Compétences de mise en œuvre de l'arbre non ordonné php
Compétences de mise en œuvre de l'arbre non ordonné 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!