定義 :
接口是一種類似于類的結(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é)果:
