php接口类interface

在学习框架阅读框架源码的时候,会看到底层很多interface类,类中定义了一些方法,但仅仅就是定义了方法而已,称作接口对象。对于php的interface类,实现接口用implements,并且必须完全实现接口类中的方法,例如:

//定义接口

interface User{

function getDiscount();

function getUserType();

}

//VIP用户 接口实现

class VipUser implements User{

// VIP 用户折扣系数

private $discount = 0.8;

function getDiscount() {

return $this->discount;

}

function getUserType() {

return "VIP用户";

}

}

class Goods{

var $price = 100;

var $vc;

//定义 User 接口类型参数,这时并不知道是什么用户

function run(User $vc){

$this->vc = $vc;

$discount = $this->vc->getDiscount();

$usertype = $this->vc->getUserType();

echo $usertype."商品价格:".$this->price*$discount;

}

}

$display = new Goods();

$display ->run(new VipUser); //可以是更多其他用户类型

?>

运行该例子:VIP用户商品价格:80元。

user接口类,之提供了用户折扣方法,VipUser类实现了具体折扣系数,goods类实现了不同用户的折扣系数。

所以对于一个团队开发的项目,比如我 负责Vip用户的折扣,你负责其他用户的折扣,我们只要定义好一个interface,在我们逻辑 中去实现这个类就可。

php也能在继承一个类的时候实现多接口:

class A extends B implements C,D{}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容