小編給大家分享一下php多態(tài)性是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
站在用戶的角度思考問題,與客戶深入溝通,找到平南網(wǎng)站設計與平南網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋平南地區(qū)。多態(tài)性是指相同的操作或函數(shù)、過程可作用于多種類型的對象上并獲得不同的結果。不同的對象,收到同一消息將可以產(chǎn)生不同的結果,這種現(xiàn)象稱為多態(tài)性。
多態(tài)性允許每個對象以適合自身的方式去響應共同的消息。多態(tài)性增強了軟件的靈活性和重用性。
一、什么是多態(tài)?
多 態(tài)(Polymorphism)按字面上意思理解就是“多種形狀”??梢岳斫鉃槎喾N表現(xiàn)形式,也即“一個對外接口,多個內(nèi)部實現(xiàn)方法”。在面向對象的理論 中,多態(tài)性的一般定義為:同一個操作作用于不同的類的實例,將產(chǎn)生不同的執(zhí)行結果。也即不同類的對象收到相同的消息時,將得到不同的結果。
在實際的應用開發(fā)中,采用面向對象中的多態(tài)主要在于可以將不同的子類對象都當作一個父類來處理,并且可以屏蔽不同子類對象之間所存在的差異,寫出通用的代碼,做出通用的編程,以適應需求的不斷變化。
二、多態(tài)的應用設計
在實際的應用開發(fā)中,通常為了使項目能夠在以后的時間里的輕松實現(xiàn)擴展與升級,需要通過繼承實現(xiàn)可復用模塊進行輕松升級。在進行可復用模塊設計時,就需要盡可能的減少使用流程控制語句。此時就可以采用多態(tài)實現(xiàn)該類設計。
舉例:
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()); //顯示員工工作
分析:在上述程序中,首先定義兩個員工類:油漆工類和打字員類。然后定義一個處理函數(shù),在該函數(shù)中,判斷員工是否為已經(jīng)定義的員工,打印出員工的工作狀態(tài)。其結果如下所示。
油漆工正在刷漆
打字員正在打字
從以上程序可輕松看出,若想顯示其幾種員工的工作狀態(tài),需要首先定義該員工類,并在該員工類中定義員工的工作,然后在printworking()函數(shù)中增加elseif語句以檢查對象是哪一員工類的實例。這在實際的應用中,是非常不可取的。若此時采用多態(tài),則可以輕松解決此問題。
以上是php多態(tài)性是什么的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當前標題:php多態(tài)性是什么-創(chuàng)新互聯(lián)
網(wǎng)址分享:http://aaarwkj.com/article30/dpjeso.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設、品牌網(wǎng)站制作、手機網(wǎng)站建設、網(wǎng)站內(nèi)鏈、自適應網(wǎng)站、動態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)