Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович
Вступай в Телеграм чат проекта

Теория ООП / Мощь полиморфизма

  • На этом уроке мы создадим в базовом классе функцию Draw(),
    и при её вызове через механизм полиморфизма будет запускаться созвучный метод нужного класса.
  • Дата отправки отчёта: 3 сентября 2015 г.
  • Задание выполнено: за 8 час. 00 мин.
  • Чему научился: 1) Упрощению программы путем помещения метода  Draw в базовый класс при помощи virtual Draw в классе Shape  и override и в производных-Line, Box, Circle и простым вызовом из Form. 2) Увидела в цикле как последовательно из одной строки идет обращение к элементам массива фигур Shape. Однако замена в Shape  virtual Draw на public abstract Draw не прошла при сохранении override в производных.
  • Что было сложным: не получилась замена в  public abstract Shape  virtual Draw на public abstract Draw при сохранении override в производных классах. Почему? ( см скиншот)
  • Комментарии: No comments!
  • Оценка видео-уроку:
Отчёт от 3283 за Теория ООП / Мощь полиморфизма


Отчёт от 3283 за Теория ООП / Мощь полиморфизма




Оцени работу

 
Сохранить страницу:

24. Олюшка
Олюшка
ответить
→  Larisa  # Теория ООП / Мощь полиморфизма / 2015-09-03 18:32

Лариса, я очень рада что ты продолжаешь заниматься!!! ☀️
Лариса, нужно в функции abstract public void Draw() убрать фигурные скобочки и поставить ";" запись вот такая (abstract public void Draw();)
Уверена что будет замечательно, у тебя уже все получается! Ты Молодец! ☀️


6525. Дмитрий
Дмитрий
ответить
→  Larisa  # Теория ООП / Мощь полиморфизма / 2015-09-03 17:38

Убери тело метода {}. Должно получиться так public abstract void Draw();
У абстрактных методов не может быть тела. Или замени abstract на virtual



Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Научился переопределению методов в дочерних классах. Вызываем метод класса Shape, но вызывается тот метод, который принадлежит классу текущего объекта массива shapes.
Трудности: Для меня, как человека, впервые столкнувшимся с переопределением методов как с одним из примеров полиморфизма - все это довольно сложно для понимания. Особенно учитывая, что я постоянно забываю, что массив Shape состоит из объектов, классы которых наследуются от класса Shape. Для меня это трудно понять, что все классы мы наследовали, чтобы потом запихнуть все в простой массив. Отсюда следует вопрос - почему бы нам вместо наследования было просто не воспользоваться коллекцией ArrayList, которая принимает в себя элементы любых типов(классов)? Так что думаю, что с последним заданием - "порадоваться силе полиморфизма" я пока не справился.



Научился: 1) Упрощению программы путем помещения метода Draw в базовый класс при помощи virtual Draw в классе Shape и override и в производных-Line, Box, Circle и простым вызовом из Form. 2) Увидела в цикле как последовательно из одной строки идет обращение к элементам массива фигур Shape. Однако замена в Shape virtual Draw на public abstract Draw не прошла при сохранении override в производных.
Трудности: не получилась замена в public abstract Shape virtual Draw на public abstract Draw при сохранении override в производных классах. Почему? ( см скиншот)
No comments!