Die Definition von Polymorphismus verstehen
Die Rolle des Polymorphismus verstehen
4. Beherrschen Sie die spezifische Implementierung von Polymorphismus
Wir folgen weiterhin dem vorherigen konsistenten Denken und lernen durch die 3W1H-Methode. Lassen Sie uns also zunächst verstehen
(1) Polymorphismus verstehen Die Definition von
“ bezeichnet. Beispielsweise verfügt die Schnittstelle A über zwei Implementierungen, B und C. B und C können unterschiedliche Methoden haben, die in A definiert sind. Dieses Phänomen ist Polymorphismus
(2). Verstehen Sie, dass Polymorphismus die Rolle von
(3) Verstehen Sie die Verwendungsszenarien des Polymorphismus
-Beispielsweise hat jedes Tier seine eigene Art zu fressen. Ratten und Katzen fressen direkt ohne an Hygiene zu denken, also waschen sie das Essen nicht vor dem Essen. Aber Menschen sind fortgeschrittene Tiere, also achten sie auf grundlegende Hygiene (außer bei Geisteskranken), waschen sich vor dem Essen und urteilen, dass einige Dinge so sein müssen Und aufgrund kultureller Unterschiede essen die Menschen auch auf unterschiedliche Weise. Beispielsweise essen Inder mit den Händen, während Chinesen mit Stäbchen essen, und es gibt unterschiedliche Arten des Essens Dasselbe gilt für viele andere Dinge, daher ist das Phänomen des Polymorphismus auch sehr verbreitet, und wir schreiben Code mit objektorientierter Programmierung, sodass es unvermeidlich ist, dass wir auch auf „Polymorphismus“ stoßen Um unseren Code für die reale Welt relevanter zu machen, müssen wir auch „Polymorphismus“ verwenden
(4) und die spezifische Implementierung des Polymorphismus beherrschen
1. Die Definition von Polymorphismus ist, dass jede Schnittstelle mehrere verschiedene Implementierungen haben kann
Jede Zusammenfassung wird durch Übung erhalten. Jetzt verwenden wir Übung, um die Zusammenfassung zu demonstrieren, was das Verständnis fördern und jede Zusammenfassung erstellen kann verständlich. Es ist klarer und intuitiver
(5), spezifischer Code
1. Praktische Ziele:1. Die Definition von Polymorphismus ist, dass jede Schnittstelle mehrere verschiedene Implementierungen haben kann
<?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); ?>
Ich bin eine Katze, die ich mag. Ich werde es direkt essen
Ich bin ein Mensch, ich wasche mich vor dem Essen, weil ich auf grundlegende Hygiene achten muss(6) Wenden Sie an, was Sie lernen
Frage: Mit objektorientierter Programmierung simuliert der Code das Konzept des Polymorphismus
Ideenanalyse:
Hühner: Anzahl
Hunde: Anzahl
Alter Mann: aufstehen, Brei kochen, essen (Brei essen), füttern
Huhn: essen (zum Essen Reis picken)
Hund: essen (Knochen essen)
4. Basierend auf der obigen Analyse haben wir herausgefunden, dass drei der Objekte Essgewohnheiten haben, diese jedoch auf unterschiedliche Weise des Essens, damit wir dies veröffentlichen können Die Methode wird extrahiert und in eine Schnittstelle umgewandelt, und dann werden diese drei Klassen separat implementiert
Der spezifische Implementierungscode lautet wie folgt:
<?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);//给小狗喂食 ?>
Xiao Liu stand auf
Xiao Liu kochte Brei
Xiao Liu aß Brei
Die 5 Welpen aßen alle die Reste
1. In diesem Artikel geht es hauptsächlich um die Definition und Funktion von Polymorphismus sowie die spezifische Implementierung
Ich hoffe, dieser Artikel kann Ihnen helfen, vielen Dank! ! !
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des objektorientierten PHP-Polymorphismus (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!