現在の PHP 5.4 実装でこの動作が可能である正当な理由があるかどうか疑問に思っています。
trait T {
public function test(PDO $pdo) {}
}
class C {
use T;
public function test(DOMDocument $dom) {}
}
クラスがトレイトを使用するという事実は、このクラスが特定のインターフェースを利用できることを保証していると思いました。しかし、ここで、トレイト メソッドを別の目的でうっかりオーバーライドしてしまうと、古典的な継承のように、厳格な標準の通知さえも受け取りません。
これは特に意図的に許可されていますか?何のために?