面向对象第八天 -----新特性Trait

81.Trait php5.4 新特性
2.1 Trait的概述
      Trait 是 PHP5.4 中的新特性,是 PHP 多重继承的一种解决方案。例如,需要同时继承两个 Abstract Class, 这将会是件很麻烦的事情,Trait 就是        为了解决这个问题。
2.2 Trait的简单使用
  格式::
    trait 名字{
      }
特点:
    ① 不能被实例化
    ② 在类中use引入来实现其价值

2.3 多个Trait的引用
    use A,B
2.4 Trait之间的嵌套
      一个trait 可以由多个 trait 组成
          use A,B;
2.5 Trait的属性
      在trait中可以定义属性并在class中使用,

      单use 的class不允许重复定义属性

2.6 Trait的方法优先级
      class中如果有和trait重名的方法则覆盖
      trait的方法会覆盖父类方法
2.7 Trait的修饰符
      如果方法中存在static 可以用对象$obj->demo() User::demo()
      如果trait中存在抽象方法,则实例化的类必须实现此方法
2.8 Trait冲突

  使用 insteadof  解决冲突

例:


class User
{
use A,B{
A::demo insteadof B;
//B::demo insteadof A;
//B::demo as daimo;
B::demo as private daimo;
}
public function demo2()
{

$this->daimo();
echo "User中的demo2<br>";
}
}

$u1 = new User();
$u1->demo();
$u1->demo2();

 

posted @ 2016-05-22 16:09  隔壁家王叔叔  阅读(130)  评论(0编辑  收藏  举报