Вы хотите расширить свой BaseEntity
, скажем, SubclassEntity
и, так сказать, сжать интерфейс. Но, сжатие ваш интерфейс ломает ваш интерфейс.
Концептуально, Load
всегда должен возвращать BaseEntity
, даже если вы знаете, что это действительно SubclassEntity
. В действительности, если вы знаете, что возвращаемый объект является SubclassEntity
, просто добавьте это после:
$obj = $container->Load(123); /* @var $obj SubclassEntity */