Научился: Добавил в класс Circle метод Draw(). Добавил в класс Circle поля graph и pen. Создал инициализаторы этих полей SetGraphics() и SetPen(). Убрал из основной программы метод Draw (Circle circle). Изменил метод Draw(Shape shape) для вызова Circle.Draw(). Трудности: Уследить за модернизацией кода. Чуть отвлёкся и "накосячил". Минут двадцать искал ошибку.
Научился: Пытаемся освободить базовый класс от лишнего кода, распихивая его по соответствующим классам. Трудности: Сложность только в новизне материала. Все отлично.