最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP abstract與interface之間的區(qū)別

 更新時(shí)間:2013年11月11日 09:37:00   作者:  
本文是對(duì)PHP中abstract與interface之間的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助

1.php 接口類:interface

其實(shí)他們的作用很簡(jiǎn)單,當(dāng)有很多人一起開發(fā)一個(gè)項(xiàng)目時(shí),可能都會(huì)去調(diào)用別人寫的一些類,那你就會(huì)問,我怎么知道他的某個(gè)功能的實(shí)現(xiàn)方法是怎么命名的呢,這個(gè)時(shí)候php接口類就起到作用了,當(dāng)我們定義了一個(gè)接口類時(shí),它里面的方式是下面的子類必須實(shí)現(xiàn)的,比如 :

復(fù)制代碼 代碼如下:

 interface Shop
 {
       public function buy($gid);
       public function sell($gid);
       public function view($gid);
 }

我聲明一個(gè)shop接口類,定義了三個(gè)方法:買(buy),賣(sell),看(view),那么繼承此類的所有子類都必須實(shí)現(xiàn)這3個(gè)方法少一個(gè)都 不行,如果子類沒有實(shí)現(xiàn)這些話,就無法運(yùn)行。實(shí)際上接口類說白了,就是一個(gè)類的模板,一個(gè)類的規(guī)定,如果你屬于這類,你就必須遵循我的規(guī)定,少一個(gè)都不 行,但是具體你怎么去做,我不管,那是你的事,如:
復(fù)制代碼 代碼如下:

class BaseShop implements Shop
{
public function buy($gid)
{
echo('你購(gòu)買了ID為 :'.$gid.'的商品');
}
public function sell($gid)
{
echo('你賣了ID為 :'.$gid.'的商品');
}
public function view($gid)
{
echo('你查看了ID為 :'.$gid.'的商品');
}
}

你想想,在一個(gè)多人合作的大項(xiàng)目里面,有了接口類是多么的方便,這樣你就不用去問別人,你的某某功能的方法名是什么了,當(dāng)然如果你們喜歡這樣我也沒有辦法。

結(jié)論 : 接口類就是一個(gè)類的領(lǐng)導(dǎo)者,指明方向,子類必須完成它指定方法。

2.php 抽象類 : abstract

其實(shí)抽象類和接口類有一部分很像,記得在哪里看見這樣一句話,抽象類就把類像的部分抽出來,這句看上去很搞笑,其實(shí)它說出了抽象類的真理,抽象類的 作用是,當(dāng)你發(fā)現(xiàn)你的很多類里面用很多方法你不斷的在重復(fù)寫,那你就可以考慮使用抽象類了,你可能會(huì)說“我不是可以重寫一個(gè)類每個(gè)公共類我個(gè)實(shí)例化一個(gè)這 個(gè)公共類,調(diào)用相同的方法就可以了”,這里是可以,實(shí)際上抽象類做的工作也就是這個(gè),不過他省去了你實(shí)例化的這個(gè)步驟,讓你就像直接調(diào)用本類方法一樣方 便,而且你還可以重載這個(gè)方法。如:

復(fù)制代碼 代碼如下:

  abstract class BaseShop
  {
      public function buy($gid)
      {
          echo('你購(gòu)買了ID為 :'.$gid.'的商品');
      }
      public function sell($gid)
      {
          echo('你賣了ID為 :'.$gid.'的商品');
     }
     public function view($gid)
     {
         echo('你查看了ID為 :'.$gid.'的商品');
     }
 }
 class BallShop extends BaseShop
 {
     var $itme_id = null;
     public function __construct()
     {
         $this->itme_id = 2314;
     }
     public function open()
     {
         $this->sell($this->itme_id);
     }
 }


這里是一個(gè)例子,想上面一樣我定義了一個(gè)商店類,抽出了它所有像的部分,買(buy),賣(sell),看(view),并且抽象類里都實(shí)現(xiàn)了這些方法,那么繼承它的子類就自動(dòng)獲得了這些方法,子類就做它自己獨(dú)特的東西,介紹代碼的重復(fù),提高復(fù)用性。

結(jié)論: 抽象類就是一個(gè)類的服務(wù)提供商,擁有眾多服務(wù),你不用必須用,當(dāng)需要的時(shí)候你來用就可以,如果你覺得不提供服務(wù)不滿意,你還可以自己來做。而abstract function 方法和interface有些相似,就是父類中生聲明的方法,子類中必須實(shí)現(xiàn),但是沒有用abstract聲明的方法將成為子類的公共方法,沒有必要在子類中必須實(shí)現(xiàn)

相關(guān)文章

  • JS或jQuery獲取ASP.NET服務(wù)器控件ID的方法

    JS或jQuery獲取ASP.NET服務(wù)器控件ID的方法

    這篇文章主要介紹了JS或jQuery獲取ASP.NET服務(wù)器控件ID的方法,本文介紹一方法,解決如何使用js獲取ASP.NET控件在瀏覽器端生成html標(biāo)簽對(duì)應(yīng)的id,需要的朋友可以參考下
    2015-06-06
  • javascript中JSON.parse()與eval()解析json的區(qū)別

    javascript中JSON.parse()與eval()解析json的區(qū)別

    這篇文章主要介紹了javascript中JSON.parse()與eval()解析json的區(qū)別,詳細(xì)描述了json格式數(shù)據(jù)的操作技巧,并結(jié)合實(shí)例形式對(duì)比分析了使用JSON.parse()與eval()解析json的區(qū)別,需要的朋友可以參考下
    2016-05-05
  • 微信小程序前端源碼邏輯和工作流

    微信小程序前端源碼邏輯和工作流

    這篇文章主要介紹了微信小程序前端源碼邏輯和工作流 的相關(guān)資料,本文還給大家提供了文本基本結(jié)構(gòu)圖和實(shí)例代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-09-09
  • 還不懂遞歸?讀完這篇文章保證你會(huì)懂

    還不懂遞歸?讀完這篇文章保證你會(huì)懂

    你還不懂遞歸?讀完這篇文章保證你會(huì)懂,下面這篇文章主要給大家介紹了關(guān)于遞歸的相關(guān)內(nèi)容,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • 微信小程序?qū)崿F(xiàn)分頁(yè)功能

    微信小程序?qū)崿F(xiàn)分頁(yè)功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)分頁(yè)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 鴻蒙系統(tǒng)中實(shí)現(xiàn)圖片上傳功能全流程

    鴻蒙系統(tǒng)中實(shí)現(xiàn)圖片上傳功能全流程

    在鴻蒙系統(tǒng)中實(shí)現(xiàn)圖片上傳功能,整體流程可以類比為?“選快遞→填單→發(fā)貨→簽收”?的過程,下面給大家介紹鴻蒙系統(tǒng)中實(shí)現(xiàn)圖片上傳功能全流程,感興趣的朋友一起看看吧
    2025-04-04
  • 微信小程序?qū)崿F(xiàn)時(shí)間預(yù)約功能

    微信小程序?qū)崿F(xiàn)時(shí)間預(yù)約功能

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)時(shí)間預(yù)約基本功能,一個(gè)類似電商的時(shí)間預(yù)約功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • 用JavaScript實(shí)現(xiàn)輪播圖效果

    用JavaScript實(shí)現(xiàn)輪播圖效果

    這篇文章為大家詳細(xì)主要介紹了用JavaScript實(shí)現(xiàn)輪播圖效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Three.js利用頂點(diǎn)繪制立方體的方法詳解

    Three.js利用頂點(diǎn)繪制立方體的方法詳解

    最近在學(xué)習(xí)three.js,將學(xué)習(xí)中遇到的知識(shí)點(diǎn)總結(jié)分享出來,下面這篇文章主要給大家介紹了關(guān)于Three.js利用頂點(diǎn)繪制立方體的方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09
  • 淺談Javascript嵌套函數(shù)及閉包

    淺談Javascript嵌套函數(shù)及閉包

    這篇文章其實(shí)是要講閉包的一些初級(jí)應(yīng)用,但是為了將閉包,我們還是從嵌套函數(shù)開始說吧,縱使所有的JavaScript函數(shù)都可以說是閉包,但是只有當(dāng)一個(gè)嵌套函數(shù)被導(dǎo)出到它所定義的作用域之外時(shí),這種閉包才是有趣的。
    2010-11-11

最新評(píng)論

江津市| 双江| 黔西县| 四川省| 神农架林区| 清徐县| 桦南县| 华宁县| 东源县| 长岛县| 简阳市| 繁昌县| 建湖县| 商城县| 滨州市| 云和县| 沂源县| 信阳市| 安康市| 谢通门县| 措美县| 北票市| 电白县| 普兰店市| 响水县| 上饶县| 浮梁县| 当涂县| 阿荣旗| 正宁县| 乃东县| 长岛县| 阳原县| 新田县| 开江县| 大新县| 东方市| 蒙城县| 三原县| 磴口县| 余干县|