Почему Абстрактная Фабрика использует абстрактный интерфейс вместо интерфейса?

Я изучаю шаблоны проектирования, и первый пример в книге посвящен абстрактной фабрике. Я построил упражнение в VS, и все выглядит хорошо, но есть один вопрос, который меня интересует.

В книге фабричный класс реализован так:

public abstract class AbstractVehicleFactory
{
    public abstract IBody CreateBody();
    public abstract IChassis CreateChassis();
    public abstract IGlassware CreateGlassware();
}

После выполнения упражнения я отметил, что вышеуказанный класс можно заменить следующим кодом:

public interface IAbstractVehicleFactory
{
      IBody CreateBody();
      IChassis CreateChassis();
      IGlassware CreateGlassware();
}

Конечно, оба примера функционируют абсолютно одинаково, но мне интересно, в чем причина использования абстрактного класса, а не интерфейса?

Ответы на вопрос(4)

Ваш ответ на вопрос