PHP 5.4: почему классы могут переопределять методы черты с другой сигнатурой?
Мне интересно, есть ли веская причина, по которой такое поведение возможно в текущей реализации PHP 5.4:
trait T {
public function test(PDO $pdo) {}
}
class C {
use T;
public function test(DOMDocument $dom) {}
}
Я думал, что тот факт, что класс использует черту, гарантировал, что у этого класса был определенный доступный интерфейс. Но здесь, если мы непреднамеренно переопределим метод черты для другой цели, мы даже не получим уведомление о строгих стандартах, как при классическом наследовании.
Это специально разрешено специально? Зачем?