您好,登錄后才能下訂單哦!
這篇文章主要講解了“PHP實現(xiàn)多態(tài)代碼實例”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“PHP實現(xiàn)多態(tài)代碼實例”吧!
多態(tài)定義:只關(guān)心一個接口或者基類,而不關(guān)心一個對象的具體類。(同一類型,不同結(jié)果)
這里兩個例子:
第一個,我們發(fā)現(xiàn),基類定義了標(biāo)準,子類進行了自我規(guī)則的實現(xiàn)。這是多態(tài)的一個要求。同時,這是滿足重寫;實際上這是不同類的不同表現(xiàn);沒有嚴格滿足一個接口,或者基類編程。因為你調(diào)用的時候不是 stu->showGrade() 而是各自自己的方法;
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());
第二個例子:dovoice 參數(shù)規(guī)定了$obj 為animal,意識就是用接口 接受了 實現(xiàn)類對象。了向上轉(zhuǎn)型。這就符合同一類型,不同結(jié)果了,這就是多態(tài);
實際上在Java中 會是 animal a = new dog();這樣子的;因為PHP 是若類型語言。沒有對象轉(zhuǎn)型機制。
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());
感謝各位的閱讀,以上就是“PHP實現(xiàn)多態(tài)代碼實例”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對PHP實現(xiàn)多態(tài)代碼實例這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。