Вы не переопределяете метод.Смысл наличия абстрактного (или виртуального) метода в том, что при любом ImportBase
я должен иметь возможность вызывать
importBase.CreateDocument();
Это явно , а не в случае с UsingOne
,как это нужно больше информации.Таким образом, вы действительно пытаетесь привязать своего вызывающего к UsingOne
, а не просто к ImportBase
- в этот момент вы утратили преимущества полиморфизма.
Чтобы переопределить метод, реализация должна иметьта же подпись, в основном.