Ответ 1
Вы не можете, его только для методов.
Однако они могут использовать одно и то же имя свойства, только если значение одно и то же:
trait Video {
public $name;
function getName(){
return 'Video';
}
}
trait Audio {
public $name;
function getName(){
return 'Audio';
}
}
class Media {
use Audio, Video {
Video::getName insteadof Audio;
}
function __construct(){
$this->name = $this->getName(); // 'Video'
}
}