智能云排名SEO內測

百度關鍵詞優化三天上首頁!同行都是朋友, 歡迎一起互利共贏。謝絕一切非正規行業服務,感謝以下同行、團隊、平臺和代理的支持:

百度站長平臺、MIP開發小組、SEO焦大老友、SEO每天一貼ZAC大哥、盧松松大哥、海瑤SEO兄弟、附子SEO兄弟、探索者SEO、幫站SEO好友、互點寶、超快排平臺

百億互刷寶、下拉天下、SEO自學網、SEO研究中心、小明SEO、王德春SEO、馬海祥博客、踏雪無痕掛機工作室、SEO云優化好友、云客網、杭州思億歐、網賺吧、北京SEO韓非老弟

需要了解以上同仁的相關信息,我們已經給你做好了搜索框,看右上角綠色那個,輸入搜索即刻直達

網站統計: 共有讀稿:14437部 / 今日更新:篇 / 評論:19條 / 會員:75 名 / 閱讀:1086085
您好,請 【登陸】/【注冊】
軟件內容頁橫幅廣告
您現在的位置:SEO平臺 > PHP網站建設 >

舉例講解PHP面對對象編程的多態

2018.04.20

瀏覽:

【導語】如果您覺得本篇內容還不錯,請點擊文章下面的贊,然后分享給朋友哦!...

舉例講解PHP面對對象編程的多態-破洛洛教學網...請看詳情...

seo

seo

舉例講解PHP面對對象編程的多態
什么是多態?

多態性,其來自于dictionary.com的定義是"以不同形式,階段或者類型出現在獨立的組織中或者同種組織中,而不存在根本區別。"由該定義,我們可以認為,多態性是一種通過多種狀態或階段來描述相同對象的編程方式。其實,它的真正意義在于:實際開發中,我們只需要關注一個接口或基類的編程,而不必擔心一個對象所屬于的具體類(class)。
如果你熟悉設計模式,即使只是有個初步了解,那么你也會了解這個概念。事實上,PHP5多態性可能是基于模式設計編程中的最偉大的工具。它允許我們以一種邏輯的方式來組織相類似的對象從而實現在具體編碼時不必擔心對象的具體類型;而且,我們只需要對一個所期望的接口或基類編程即可。一個應用程序越抽象,則它就顯得越靈活--而多態性是對行為加以抽象的最好的方式之一。
例如,讓我們考慮一個叫Person的類。我們可以用稱為David,Charles和Alejandro的類來子類化Person。Person有一個抽象方法AcceptFeedback(),所有的子類都要實現這個方法。這意味著,任何使用基類Person的子類的代碼都能調用方法AcceptFeedback()。你不必檢查該對象是一個David還是一個Alejandro,僅知道它是一個Person就夠了。結果是,你的代碼只需關注"最小公分母"-Person類即可。
在這個示例中的Person類也可以被創建為一個接口。當然,與上面相比存在一些區別,主要在于:一個接口并沒有給出任何行為,而僅確定了一組規則。一個Person接口要求的是"你必須支持AddFeedback()方法",而一個Person類可以提供一些AddFeedback()方法的缺省代碼-你對之的理解可以是"如果你不選擇支持AddFeedback(),那么你應該提供一種缺省實現。"至于如何選擇接口或基類則并非本文的主題;但是,一般說來,你需要通過基類來實現一個缺省的方法。如果你能夠簡單地勾勒出你的類所要實現的一組期望的功能,那么你也可以使用一個接口。

通俗理解
多態最直接的定義就是讓具有繼承關系的不同類對象,可以對相同名稱的成員函數調用,產生不同的反應結果

多態的代碼

   

<?php 
   
  /** 
   * 聲明接口Demo 
   * @author wzy 
   * 
   */ 
  interface Demo 
  { 
   
    const NAME = "wangzhengyi"; 
   
    const AGE = 25; 
   
    function fun1 (); // 聲明方法默認是public abstract 
    function fun2 (); 
  } 
   
  class One implements Demo 
  { 
   
    public function fun1 () 
    { 
      echo Demo::NAME . "就讀于中國傳媒大學"; 
    } 
   
    public function fun2 () 
    { 
      echo Demo::NAME . "的年齡是" . Demo::AGE; 
    } 
  } 
   
  class Two implements Demo 
  { 
   
    public function fun1 () 
    { 
      echo Demo::NAME . "在北京靈創眾和科技有限公司實習中"; 
    } 
   
    public function fun2 () 
    { 
      echo Demo::NAME . "去年的年齡是24"; 
    } 
  } 
   
  // 同一個接口,實現同一個方法,不同的對象,反應結果不同。這就是多態的表現和應用 
   
  $one = new One(); 
  $one->fun1(); // wangzhengyi就讀于中國傳媒大學 
  $one->fun2(); // wangzhengyi的年齡是25 
   
  echo "<br>"; 
   
  $two = new Two(); 
  $two->fun1(); // wangzhengyi在北京靈創眾和科技有限公司實習中 
  $two->fun2(); // wangzhengyi去年的年齡是24 

 

1
贊一個
關鍵詞:
☆喜歡這篇文章嗎?分享給你的好友吧!點擊這里復制網址☆
共有112人閱讀,期待你的評論!評論
請先登陸后才能發表評論哦!沒賬號?趕緊注冊一個吧!
最新評論
熱門標簽
回到頂部
群星闪耀在线客服