2013-07-29 19 views
1

我只是玩弄特质,看看它的目的是什么,我注意到它允许一个班级利用多个特质班,而从抽象延伸出来的班级可以一次从一个抽象范围延伸性格使抽象类无用吗?

这是我的例子:

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

这是性状的一般用法吗?

回答

4

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

这不会删除抽象类的有用性,但它确实有可能消除对静态实用工具类一个可能通常把这些类型的功能需要。