php中的多態按字面上意思理解就是“多種形狀”,可以理解為多種表現形式,即“一個對外接口,多個內部實現方法”;在面向對象的理論中,多態性是指同一個操作作用於不同的類別的實例,將產生不同的執行結果。
本文操作環境:windows7系統、PHP7.1版,DELL G3電腦
PHP 多態性
## 多態性是指相同的操作或函數、過程可作用於多種類型的物件上並獲得不同的結果。不同的對象,收到相同訊息將可以產生不同的結果,這種現象稱為多態性。 多態性允許每個物件以適合自身的方式去回應共同的訊息。多態性增強了軟體的靈活性和重用性。 在物件導向的軟體開發中,多態性是最重要的部分之一。物件導向程式設計並非只是將相關的方法與資料簡單的結合起來,而是採用物件導向程式設計中的各種要素將現實生活中的各種情境清晰的描述出來。這一小節將對物件導向程式設計中的多態性作詳細的講解。
1.什麼是多態
多 態(Polymorphism)以字面上理解就是「多種形狀」。可以理解為多種表現形式,也即「一個對外接口,多個內部實作方法」。在物件導向的理論 中,多態性的一般定義為:同一個操作作用於不同的類別的實例,將產生不同的執行結果。也即不同類別的物件收到相同的訊息時,將會得到不同的結果。 在實際的應用開發中,採用物件導向中的多型主要在於可以將不同的子類別物件當作一個父類別來處理,並且可以屏蔽不同子類別物件之間所存在的差異,寫出通用的程式碼,做出通用的編程,以適應需求的不斷變化。 推薦學習:《PHP影片教學
》2. 多型的應用設計
在實際的應用程式開發中,通常為了使專案能夠在以後的時間裡的輕鬆實現擴展與升級,需要透過繼承實現可複用模組進行輕鬆升級。在進行可重複使用模組設計時,就需要盡可能減少的使用流程控制語句。此時就可以採用多型實作該類別設計。 【範例】例舉了通常採用流程控制語句實現不同類別的處理。其程式碼如下所示。class painter{ //定义油漆工类 public function paintbrush(){ //定义油漆工动作 echo "油漆工正在刷漆!\n"; } } class typist{ //定义打字员类 public function typed(){ //定义打字员工作 echo "打字员正在打字!\n"; } } function printworking($obj){ //定义处理类 if(objinstanceofpainter)//若对象是油漆工类,则显示油漆工动作$obj−>paintbrush();elseif(obj instanceof typist){ //若对象是打字员类,则显示打字员动作 $obj->typed(); }else{ //若非以上类,则显示出错信息 echo "Error: 对象错误!"; } } printworking(new painter()); //显示员工工作 printworking(new typist()); //显示员工工作
油漆工正在刷漆 打字员正在打字
class employee{//定义员工父类 protected function working(){//定义员工工作,需要在子类的实现 echo "本方法需要在子类中重载!"; } } class painter extends employee{//定义油漆工类 public function working(){//实现继承的工作方法 echo "油漆工正在刷漆!\n"; } } class typist extends employee{//定义打字员类 public function working(){ echo "打字员正在打字!\n"; } } class manager extends employee{//定义经理类 public function working(){ echo "经理正在开会!"; } } function printworking($obj){//定义处理方法 if($obj instanceof employee){//若是员工对象,则显示其工作状态 $obj->working(); }else{//否则显示错误信息 echo "Error: 对象错误!"; } } printworking(new painter());//显示油漆工的工作 printworking(new typist());//显示打字员的工作 printworking(new manager());//显示经理的工作
油漆工正在刷漆! 打字员正在打字! 经理正在开会!
以上是php中的多型什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!