萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP多態代碼實例

PHP多態代碼實例

          這篇文章主要介紹了PHP多態代碼實例,本文用2個代碼實例來演示PHP中的多態,需要的朋友可以參考下

   

          多態定義:只關心一個接口或者基類,而不關心一個對象的具體類。(同一類型,不同結果)

          這裡兩個例子:

          第一個,我們發現,基類定義了標准,子類進行了自我規則的實現。這是多態的一個要求。同時,這是滿足重寫;實際上這是不同類的不同表現;沒有嚴格滿足一個接口,或者基類編程。因為你調用的時候不是 stu->showGrade() 而是各自自己的方法;

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 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 參數規定了$obj 為animal,意識就是用接口 接受了 實現類對象。了向上轉型。這就符合同一類型,不同結果了,這就是多態;

        實際上在Java中 會是 animal a = new dog();這樣子的;因為PHP 是若類型語言。沒有對象轉型機制。

? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 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());
copyright © 萬盛學電腦網 all rights reserved