Научился: Парсинг аргументов выделять в отдельную функцию. И нашла такую интересную функцию как String.startsWith.
И еще маленькую ошибку нашла.
Создала GiftsReaderString(s), записала что сумка принимает машинки, а потом пересоздала GiftsReader и получилось, что сумка стала фрукты опять принимать. Ну и пришлось мне еще пару часов выделить на улучшение кода. Теперь я могу доложить предметы копированием из одной сумки в другую. Потом пробежалась по коду и добавила немного логов: close() вполне себе override, все отлично. А вот когда gre сумку успел создать Трудности: Заменить join на цикл for рука не поднялась. Наверно потому, что маленькому контроллеру между внешним источником данных и внутренним удобнее быть рядом с точкой входа в программу. Вот, если бы мы текст вводили на пол-страницы, то делегировали бы его разбор новому классу.