PHP用接口来模拟多继承

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);
?>

本文固定链接: http://www.ccsbbs.com.cn/archives/5810.html | 极限手指

该日志由 极限手指 于2013年03月01日发表在 PHP 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: PHP用接口来模拟多继承 | 极限手指

PHP用接口来模拟多继承:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!