PHP 面向对象 (十)traits

作用:解决代码复用问题,解决单一继承问题

与普通类的异同
    相同点
        trait 能够像普通的类一样定义属性,方法(包含抽象的、静态的、抽象的)
        trait 引入到基类里面,其子类里面也能访问trait里面的属性和方法。
    不用点
        trait不用实例化就能访问定义的普通方法以及属性。
        trait里面不能定义构造函数。

细节
    Trait中的方法或属性会覆盖 基类中的同名的方法或属性,而本类会覆盖Trait中同名的属性或方法
    一个类可以组合多个Trait,通过逗号相隔
    解决不同trait同名冲突,使用别名
demo10.php
twoSayHello();   //调用trait别名方法
    }
}

$myClass = new MyClass();
echo $myClass->twoSayHello();

class MyClassSon extends MYClass {

}

$myClass = new MyClassSon();
echo $myClass->twoSayHello(); //traits方法可以被继承

你可能感兴趣的:(PHP 面向对象 (十)traits)