Один контракт, два формата
Метод принимает ShopProductWriter и вызывает write(). Почему он может работать и с XmlProductWriter, и с TextProductWriter, не проверяя конкретный класс?
Подсказки
- Вспомни, что должен сделать класс, прежде чем стать конкретным наследником.
Что проверяет это задание
Абстрактный метод задаёт обязательный контракт, а наследники выбирают реализацию.