程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 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());
    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved