php高级篇(2)——接口

定义 :

接口是一种类似于类的结构,可用于实现类所必须实现的方法。多处用于差异化有些需要非固定动作,而且对于某些类来说必须实现的方法。

接口与抽象类类似,在方法定义上有明显区别,接口只能包含方法原型,不能包含任何方法的定义。除了这点一个类可实现多个接口,也就是间接实现了多重继承。

注意:

1. 接口用interface定义,用 implements实现

2. 如果某个类实现某个接口,就必须实现接口中的方法

3. 每个类可以实现多可接口

例子:

/**

比如目前物流系统中,货品具备有半成品和普通货品两个类型,半成品和货品唯一的区别就是有新增原料的方法和生产方法,其他属性和方法与普通货品一致

试着注释PriPrdGoods类中的addMaching,观察一下错误;

同时注意一个类可以同时实现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();

代码截图:

php高级篇(2)——接口_第1张图片

结果:

你可能感兴趣的:(php高级篇(2)——接口)