2013-07-29 20 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

通常,特徵用於抽象功能,這些抽象功能可能是許多不屬於相同類層次結構的類所需要的。您可以使用特徵將此功能保留在單個位置,並將其應用於多個類。

這不會刪除抽象類的有用性,但它確實有可能消除對靜態實用工具類一個可能通常把這些類型的功能需要。