php高級篇(2)——接口

定義 :

接口是一種類似于類的結(jié)構(gòu),可用于實(shí)現(xiàn)類所必須實(shí)現(xiàn)的方法。多處用于差異化有些需要非固定動作,而且對于某些類來說必須實(shí)現(xiàn)的方法。

接口與抽象類類似,在方法定義上有明顯區(qū)別,接口只能包含方法原型,不能包含任何方法的定義。除了這點(diǎn)一個類可實(shí)現(xiàn)多個接口,也就是間接實(shí)現(xiàn)了多重繼承。

注意:

1. 接口用interface定義,用 implements實(shí)現(xiàn)

2. 如果某個類實(shí)現(xiàn)某個接口,就必須實(shí)現(xiàn)接口中的方法

3. 每個類可以實(shí)現(xiàn)多可接口

例子:

/**

比如目前物流系統(tǒng)中,貨品具備有半成品和普通貨品兩個類型,半成品和貨品唯一的區(qū)別就是有新增原料的方法和生產(chǎn)方法,其他屬性和方法與普通貨品一致

試著注釋PriPrdGoods類中的addMaching,觀察一下錯誤;

同時注意一個類可以同時實(shí)現(xiàn)PrePrdct,Product 這兩個接口;

**/

//半成品接口

interface Preprdct{

//半成品具備增加原料的功能,其他普通商品不具備這個方法

public function addMaching($metail);

}

interface Product{

public function productMetail();

}

//貨品類

class Goods{

private $gid;

private $gname;

private $type;

public function __construct($gid,$name,$type,$extends=array()){

$this->gid = $gid;

$this->name = $name;

$this->type = $type;

}

}

//半成品類

class PriPrdGoods extends Goods implements PrePrdct,Product{

public function addMaching( $metail ){

echo "添加原料 ".$metail."
";

}

public function productMetail(){

echo "生成辦成品".$this->name."
";

}

}

//聲明一個羊肉串的半成品

$priPrdGoods = new PriPrdGoods("1","羊肉串",1);

$priPrdGoods->addMaching("羊肉");

$priPrdGoods->productMetail();

代碼截圖:

結(jié)果:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容