Maison > Article > développement back-end > Explication détaillée du polymorphisme orienté objet PHP (exemple de code)
1. Comprendre la définition du polymorphisme
2 Comprendre le rôle du polymorphisme
3. Comprendre les scénarios d'utilisation du polymorphisme
4. Maîtriser la mise en œuvre spécifique du polymorphismeToujours en suivant la pensée cohérente précédente, nous apprenons grâce à la méthode 3W1H, alors comprenons d'abord (1) Comprendre le polymorphisme La définition de Comme il peut y avoir de nombreuses implémentations de méthodes dans une interface, les implémentations spécifiques des méthodes définies dans l'interface sont diverses. Cette fonctionnalité est appelée "Polymorphisme"
-. Par exemple, l'interface A a deux implémentations, B et C. B et C peuvent avoir des méthodes différentes définies dans A. Ce phénomène est le polymorphisme (2), comprendre le polymorphisme Le rôle de est pour permettre à une interface d'avoir différentes implémentations, ce qui rend le code plus pertinent pour le monde réel. Cette approche réduit la distance entre le code et le monde réel, permettant aux développeurs d'implémenter plus facilement une logique métier complexe dans l'implémentation(3) Comprendre les scénarios d'utilisation du polymorphismeEn fait, ce scénario d'utilisation, une fois que l'on décide d'utiliser une interface, ce phénomène apparaîtra, car une fois qu'une interface a différentes classes d'implémentation, ce phénomène Cela se produira essentiellement, car nous espérons souvent qu'une ou plusieurs méthodes dans une interface peuvent avoir différentes implémentations spécifiques-Par exemple, la façon de manger, chaque animal a sa propre façon de manger. directement sans penser à l'hygiène, donc ils ne lavent pas la nourriture avant de manger. Mais les humains sont des animaux avancés, donc ils font attention à l'hygiène de base (sauf pour les malades mentaux), se lavent avant de manger et jugent que certaines choses doivent être cuit avant de manger. Et en raison des différences culturelles, chaque pays mange également de différentes manières. Par exemple, les Indiens mangent directement avec leurs mains, tandis que les Chinois mangent avec des baguettes, et certains pays occidentaux utilisent des fourchettes. est très courant dans la vie réelle. La même chose est vraie pour beaucoup d'autres choses, donc le phénomène de polymorphisme est également très courant, et nous écrivons du code en utilisant une programmation orientée objet, il est donc inévitable que nous rencontrions également du « polymorphisme », et afin de rendre notre Pour rendre le code plus pertinent par rapport au monde réel, nous devons également utiliser le "polymorphisme" (4), maîtriser l'implémentation spécifique du polymorphisme Résumé :
1 Cas 1
Objectifs pratiques : 1. La définition du polymorphisme est que chaque interface peut avoir plusieurs implémentations différentes<?php //定义吃的接口 interface Eat{ public function eat(); } //定义猫的类 class Cat implements Eat{ public function eat(){ echo "我是猫,抓到喜欢的老鼠,直接吃<br/>"; } } //定义人 class Human implements Eat{ public function eat(){ echo "我是人,吃东西之前,都会洗一下再吃,因为我要讲究基本的卫生<br/>"; } } function Eat( $obj ){ if( $obj instanceof Eat ){ $obj->eat(); }else{ echo "该对象没有实现Eat的方法<br/>"; } } $cat = new Cat(); $zs = new Human(); //这行代码看出,一个吃的方法,传递不同的具体实现,结果就是可以有不同的实现,这就是多态 Eat($cat); Eat($zs); ?>Le résultat de l'opération est :
Je suis un chat si j'attrape la souris que j'aime. , je vais le manger directement(6) Appliquez ce que vous apprenez Question : Utilisation de la programmation orientée objet La méthode simule la scène réelle suivante Le code doit refléter le concept de polymorphismeJe suis un être humain, je me lave avant de manger car je dois faire attention à l'hygiène de base
Vieil homme : se lever, cuisiner du porridge, manger (manger du porridge), nourrir
Nourriture : définir le nom de l'aliment
<?php //定义吃的接口 interface Eat{ public function eat($food); } //定义食物 class Food{ public $name = ""; public function __construct( $name ){ $this->name = $name; } } //定义人 class Human implements Eat{ public $name = ""; public function __construct( $name ){ $this->name = $name; } //起床 public function wakeup(){ echo $this->name."起床了<br/>"; } //煮稀饭 public function cook($food){ echo $this->name."煮".$food->name."了<br/>"; } public function eat($food){ echo $this->name."吃了".$food->name."<br/>"; } //喂食 function startFeed( $obj,$food ){ if( $obj instanceof Eat ){ $obj->eat($food); }else{ echo "该对象没有实现Eat的方法<br/>"; } } public function feed($obj, $food){ $this->startFeed( $obj,$food ); } } //定义鸡的类 class Chiken implements Eat{ public $count = 5; public function eat($food){ echo $this->count."只小鸡们,都吃了".$food->name."<br/>"; } } //定义狗的类 class Dog implements Eat{ public $count = 5; public function eat($food){ echo $this->count."只小狗们,都吃了".$food->name."<br/>"; } } //创建对象 $xiaoliu = new Human("小刘"); $chikens = new Chiken(); $dogs = new Dog(); //创建食物 $xfFood = new Food("稀饭"); $seedsFood = new Food("米"); $mealFood = new Food("残羹剩饭"); //老人起床 $xiaoliu->wakeup(); //老人煮稀饭 $xiaoliu->cook($xfFood); //老人吃稀饭 $xiaoliu->eat( $xfFood ); //老人喂食开始 $xiaoliu->feed($chikens,$seedsFood);//给小鸡喂食 $xiaoliu->feed($dogs,$mealFood);//给小狗喂食 ?>Le Le résultat courant est :
Xiao Liu s'est levéXiao Liu a cuit du porridge
Xiao Liu a mangé du porridge
Les 5 poulets ont tous mangé du riz
Les 5 chiots ont tous j'ai mangé les restes
1 Cet article parle principalement de la définition et de la fonction du polymorphisme, ainsi que de la mise en œuvre spécifique
J'espère que cet article pourra vous apporter un peu d'aide, merci ! ! !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!