Спасибо! Так я не пробовал, идею понял. Но при такой реализации в базовом классе Bar метод _foo.Commit() нельзя написать, так как явно не указано, что TImpl наследуется от Foo и имеет данный метод.?! Создание потомка предполагается таким class BarChild : Bar [IFoo, Foo] (поставил квадратные скобки, так как угловые заменяются в форме ответа.)