Correcting teacher:天蓬老师
Correction status:qualified
Teacher's comments:希望看到不一样的案例
trait tDemo1
{
public function display()
{
//__TRAIT__获取当前类名称 __METHOD__获取当前方法名称
return __TRAIT__ . ' => ' . __METHOD__;
}
}
trait tDemo2
{
public function display()
{
//__TRAIT__获取当前类名称 __METHOD__获取当前方法名称
return __TRAIT__ . ' => ' . __METHOD__;
}
}
trait tDemo
{
//继承了tDemo1与tDemo2
use tDemo1, tDemo2 {
// 1. 第一个办法:使用insteadOf将tDemo1里面的方法被tDemo2替代掉
tDemo1::display insteadOf tDemo2;
// 2. 第二个办法:别名 给重名的方法换名字 下面是将tDemo2里面的重名的方法换成td2
tDemo2::display as td2;
}
}
//在trait中改变trait成中的访问控制
//修改trait成员的访问控制 protected为修改后属性 td1为修改后名称
//属性修改为受保护 不能再客户端调用,但是可以在类中调用
//以下是将tDemo1里面的方法display属性修啊改为protected 名称修改为td1
//在trait中改变trait成中的访问控制
use tDemo1 {display as protected td1;}