На этом уроке мы создадим в базовом классе функцию Draw(), и при её вызове через механизм полиморфизма будет запускаться созвучный метод нужного класса.
Дата отправки отчёта:
1 января 2018 г.
Задание выполнено: за
27 мин.
Чему научился:
Научился переопределению методов в дочерних классах. Вызываем метод класса Shape, но вызывается тот метод, который принадлежит классу текущего объекта массива shapes.
Что было сложным:
Для меня, как человека, впервые столкнувшимся с переопределением методов как с одним из примеров полиморфизма - все это довольно сложно для понимания. Особенно учитывая, что я постоянно забываю, что массив Shape состоит из объектов, классы которых наследуются от класса Shape. Для меня это трудно понять, что все классы мы наследовали, чтобы потом запихнуть все в простой массив. Отсюда следует вопрос - почему бы нам вместо наследования было просто не воспользоваться коллекцией ArrayList, которая принимает в себя элементы любых типов(классов)? Так что думаю, что с последним заданием - "порадоваться силе полиморфизма" я пока не справился.
Можно все элементы поместить в коллекцию. Только тогда в цикле нужно ставить свич на перебор всех возможных типов чтобы вызвать один метод. Это неудобно.
Потому что это не так удобно, как можно реализовать, пока ещё не прошёл этот курс, поэтому не скажу, будет ли дальше разгадка сути или нет, но в курсах по Java такое уже проходили =)
После того, как ты соберешь массив разнотипных объектов, придется организовывать сложную функцию для обращения с запросами к разнотипным объектам этого массива(какие то case проверки соответствия типов). А так у тебя куча объектов обобщенных базовым классом и унаследованный функционал работает автоматически. Что бы понять, советую сделать, как ты предлагаешь, и проверить все самому.
Отчёт оценивали: 15876. Скозложоп+11. Евгений Волосатов+116533. Андрей Шевченко+12773. Никита+1459. Сергей Сергеевич+110558. Иван Воронин+16452. Кирилл Шмойлов+16644. valerys Nikola+110167. Игорь+17119. Новопашин Владимир+110528. Денис+13922. Александр+17308. AZANIR+11570. Сарапульцев Константин+13747. Сергей+1
Начинаем практику по языку C#
Чтобы стать хорошим программистом — нужно писать программы.
На нашем сайте очень много практических упражнений.
После заполнения формы ты будешь подписан на рассылку
«C# Вебинары и Видеоуроки»,
у тебя появится доступ к видеоурокам и консольным задачам.
Несколько раз в неделю тебе будут приходить письма —
приглашения на вебинары, информация об акциях и скидках,
полезная информация по C#.
Научился: Создавать виртуальные функции и переопределять их в классах-наследниках.
Создавать абстрактные классы и переопределять их в классах-наследниках. Трудности: На этот раз гладко зашло) Я в восторге от ООП в общем и полиморфизма в частности!)
Научился: Оптимизировал программу под использование полиморфизма.
Прошел по шагам.
Чем дальше прохожу по урокам курса, тем больше упрощается программа.)))