PHP中的特殊類,介面類和抽象類別(都不能直接執行個體化)

來源:互聯網
上載者:User

標籤:

介面類不用執行個體化,需要一一實現介面定義的所有方法。關鍵字interface implements

介面interface 是一個規定,給人繼承用的東西,有點像抽象類別
在裡面定義的方法,卻不去執行個體化,而需要別的類去implements 它,而且必須一一實現介面定義的所有方法,
實際上介面類說白了,就是一個類的模板,一個類的規定,


舉個例子
interface Shop
{
public function buy($gid);
public function sell($gid);
public function view($gid);
}
我聲明一個shop介面類,定義了三個方法:買(buy),賣(sell),看(view),那麼繼承此類的所有子類都必須實現這3個方法少一個都不行,
如果子類沒有實現這些話,就無法運行。
實際上介面類說白了,就是一個類的模板,一個類的規定,
如果你屬於這類,你就必須遵循我的規定,少一個都不行,但是具體你怎麼去做,我不管,那是你的事,如:

class BaseShop implements Shop
{
public function buy($gid)
{
echo(‘你購買了ID為 :‘.$gid.‘的商品‘);
}
public function sell($gid)
{
echo(‘你賣了ID為 :‘.$gid.‘的商品‘);
}
public function view($gid)
{
echo(‘你查看了ID為 :‘.$gid.‘的商品‘);
}
}
————————————————————————————————————————————————————————————————————————————————————————————————————————
抽象類別&抽象方法  (只能被繼承)(關鍵字 abstract)(繼承關鍵字extends)具有抽象方法的類為抽象類別,抽象方法即為沒有內容的空方法,要求子類進行完善內容,抽象類別不能執行個體化,只能繼承,通過extends來實現,抽象類別中也可以定義普通方法 父類方法執行方式不確定,但子類還都有這個方法例1:如交通工具類:定義抽象方法控制交通工具運行方式,這樣每個交通工具如飛機,汽車都要重寫父類方法。如果在父類工具類定義該方法(比如在地上走)沒有任何意義,因為每個交通工具都要重寫(飛機要重寫方法,船要重寫方法),所以針對你類方法的不確定性,我們需要抽象方法,實現多態。例2:定義動物類,每個動物都有叫聲方法,但是表面不同,所以要定義為抽象類別,讓每種動物類去實現功能。 當父類為抽象類別時,子類必須重寫父類的抽象方法抽象類別裡不一定非要寫抽象方法,但有抽象方法的類必須定義為抽象類別抽象類別必須繼承使用抽象方法不能有主體即{}<?phpabstract class AbstractClass{   // 強制要求子類定義這些方法    abstract protected function getValue();    abstract protected function prefixValue($prefix);     // 普通方法(非抽象方法)    public function printOut() {        print $this->getValue();    }}
________________________________________________________________________________________
















PHP中的特殊類,介面類和抽象類別(都不能直接執行個體化)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.