PHP ООП «Реализация должна быть совместимой»

У меня странные проблемы с ООП PHP и подсказками типов. Вот пример:

abstract class AC {}

class C extends AC {}

interface I {
    function method(AC $abstract);
}

class InterfaceImplementation implements I {
    function method(C $concrete) {}
}

Этот код не запускается, говоря, что метод несовместим с объявлением интерфейса. Я бы подумал, что это совместимо, так как C расширяет AC - я что-то пропускаю? Как я могу реализовать такую ​​функциональность?

5
задан Fluffy 14 January 2012 в 14:34
поделиться