Научился: Пока все известно. Важно было замечание насчет наследования и причины невозможности наследования казалось бы общих характеристик.
А так же насчет полиморфизма. Именно такие важные замечания и нужны. Т.е. все действия должны отвечать на вопрос "зачем" и "почему так, а не этак". Пока что в других курсах я не видел таких ответов.
Научился: Не могу сказать. Вроде бы ничего нового. Непонятно с функцией Draw(). Эта же функция вызывается в своем же теле. Это рекурсия или нет?
Насколько я понимаю - правилом хорошего тона является передавать в функцию переменную и сразу указывать ее тип.
Draw(Line line2); вместо Draw(line2);, т.к. в начале они конечно инициализируются, но обычно пишут публичные переменные и я думал, что если не указан модификатор, то они по умолчанию публичные. Это все сбивает с толку.
Касательно public Line(int x1, int y1, int x2, int y2)
{
this.x1 = x1;
this.y1 = y1;
this.x2 = x2;
this.y2 = y2;
Опять же, насколько я знаю - переменные внутри метода должны по имени отличаться от внешних переменных хотя бы знаком _. А то опять путанница для начинающего и он будет думать, что this.x1 - это как бы x1, только он внутри метода и что имя это должно быть одинаково.
Вобщем получилось все запутанно с именами функций и переменных.