Вы можете добавить это в DummyImplBase:
public Dummy RequiredMethod() { return base.RequiredMethod(); }
РЕДАКТИРОВАТЬ: Или, если вы используете C # 4.0, вы можете изменить определение IRequired следующим образом:
public interface IRequired<out T>
затем удалите IDummyRequired, и вы все равно сможете назначать производные классы
IRequired<Dummy>
(но не для IDummyRequired).
2-е РЕДАКТИРОВАНИЕ: Ваш исходный код не скомпилирован, потому что T может быть Dummy или классом, производным от Dummy. И реализованный метод
public DummyDerived RequiredMethod()
не имеет такой же подписи, как
public Dummy RequiredMethod()
, который был объявлен в IDummyDerived.