PHP多態(tài)代碼實例
多態(tài)定義:只關心一個接口或者基類,而不關心一個對象的具體類。(同一類型,不同結果)
這里兩個例子:
第一個,我們發(fā)現(xiàn),基類定義了標準,子類進行了自我規(guī)則的實現(xiàn)。這是多態(tài)的一個要求。同時,這是滿足重寫;實際上這是不同類的不同表現(xiàn);沒有嚴格滿足一個接口,或者基類編程。因為你調用的時候不是 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)類對象。了向上轉型。這就符合同一類型,不同結果了,這就是多態(tài);
實際上在Java中 會是 animal a = new dog();這樣子的;因為PHP 是若類型語言。沒有對象轉型機制。
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());
相關文章
詳解WordPress中提醒安裝插件以及隱藏插件的功能實現(xiàn)
這篇文章主要介紹了WordPress中提醒安裝插件以及隱藏插件的功能實現(xiàn),這兩種功能通常在多用戶模式下進行管理時用得比較多,需要的朋友可以參考下2015-12-12PHP重置數(shù)組為連續(xù)數(shù)字索引的幾種方式總結
下面小編就為大家分享一篇PHP重置數(shù)組為連續(xù)數(shù)字索引的幾種方式總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03解決laravel 5.1報錯:No supported encrypter found的辦法
這篇文章主要給大家介紹了關于解決laravel 5.1報錯:No supported encrypter found的相關資料,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友可以參考借鑒,下面來一起看看吧。2017-06-06laravel5.1框架model類查詢的實現(xiàn)方法
今天小編就為大家分享一篇laravel5.1框架model類查詢的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-10-10