注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

网事

备忘录

 
 
 

日志

 
 

PHP用接口来模拟多继承  

2010-01-18 15:10:26|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

PHP中不允许实现多重继承但是有时候实现多重继承也是必须得

例如以下实例 普通用户 VIP用户 特殊用户 现在的特殊用户具有VIP用户和普通

用户的双重身份。为了实现这个目的我们采实现多个接口(PHP允许实现多重接口)

来实现模拟多重继承(当然实现这种目的不一定采用这种方法但是为了更加深刻的理解PHP

的OOP我们应该知道这样可以实现)

<hr>

<?php

/**

* 定义用户接口

*/

interface UserTnterface

{

public function getName();

}

/**VIP用户接口

*/

interface VipTnterface

{

public function getLevel();

}

/**

* 实现用户接口

*/

class User implements UserTnterface

{

private $_name = 'jiewei';getName()

{

return $this->_name;

}

}

/**

* 实现VIP用户接口

*/

class Vip implements VipTnterface

{

private $_level = 5;//vip级别

public function getLevel()

{

return $this->_level;

}

}

/**

* 特殊用户有user的特征同时也是VIP用户(继承了user类同时也实现了VIP接口)

*/

class Special extends User implements VipTnterface

{

private $_vip ;

public function __construct()

{

$this->_vip = new Vip();

}

public function getLevel()

{

return $this->_vip->getLevel();

}

}test

{

public static function getUserName(UserTnterface $_user)

{

echo $_user->getName();

}

public static function getVipLevel(VipTnterface $vip)

{

echo $vip->getLevel();

}

}

$special = new Special();//特殊用户的实例实现了模拟多重继承实现了多重用户身份

test::getUserName($special);

test::getVipLevel($special);

?>

  评论这张
 
阅读(475)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018