特质使抽象类无用吗?

时间:2013-07-29 00:23:20

标签: php traits

我只是在玩特征以了解其目的是什么,我注意到它允许一个类使用多个特征类,而一个从一个抽象扩展的类可以一次从一个抽象扩展

以下是我的例子:

trait parentClass
{
    public function sayHello()
    {
        return 'parentClass sayHell() printed';
    }
}

trait parentSecondClass
{
    public function sayGoodbye()
    {
        return 'parentClass sayGoodbye() printed';
    }
}

class People
{
    use parentClass;
    use parentSecondClass;
}

$o = new People();
echo $o->sayHello() . '<br/>';
echo $o->sayGoodbye();

这是性状的一般用途吗?

1 个答案:

答案 0 :(得分:4)

通常,traits用于许多类可能需要的抽象功能,这些类不属于同一个类层次结构。您可以使用特征将此功能保留在一个位置,并将其应用于多个类。

这并没有消除抽象类的用处,但它确实可能不需要静态实用程序类,通常可以将这些类型的函数放入其中。