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

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

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

  • На этом уроке мы создадим в базовом классе функцию Draw(),
    и при её вызове через механизм полиморфизма будет запускаться созвучный метод нужного класса.
  • Дата отправки отчёта: 29 января 2018 г.
  • Задание выполнено: за 15 мин.
  • Чему научился: В классе Shape создал метод Draw()
  • Что было сложным: Не понял про механизм полиморфизма. Но порадовался его силе.
  • Оценка видео-уроку:
Отчёт от 16533 за Теория ООП / Мощь полиморфизма




Оцени работу

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

7119. --
Новопашин Владимир
Новопашин Владимир
ответить
→  Андрей Шевченко  # Теория ООП / Мощь полиморфизма / 2018-01-30 07:06

Можно создать массив объектов типа Shape. Это могут быть кружки, треугольники, прямоугольники или другие фигуры. Они унаследованы от фигуры Shape. И потом у всех них можно вызвать метод Draw. Кстати я еще смотрю есть линии - вот у линий тоже можно вызвать этот метод. В этом мощь полиморфизма и его суть. То есть у разных объектов можно вызвать один и тот же метод.


16533. --
Андрей Шевченко
Андрей Шевченко
ответить
→  Новопашин Владимир  # Теория ООП / Мощь полиморфизма / 2018-01-30 07:59

Все это интересно, но пока что не совсем понятно мне. Наверное со временем понимание придет)) Вроде и понятно и непонятно одновременно. Как-то так)) Возможно еще от того, что, бывает, делаешь один урок за другим и информации много получается. А с другой стороны интересно и хочется сделать следующий урок.


10558. --
Иван Воронин
Иван Воронин
ответить
→  Андрей Шевченко  # Теория ООП / Мощь полиморфизма / 2018-01-30 09:15

Ничего страшного, если что-либо не понятно сразу, двигайся дальше, если хочешь, можешь сделать себе пометку, чтобы потом вернуться и углубиться подробнее, погуглить и т.д., вариантов великое множество, но лучше просто двигаться дальше, набивая практику, постепенно, когда будешь сталкиваться с подобными реализациями в коде, но с другой колокольни, это как 3D, тебе будет становиться всё яснее и яснее. Удобство в том, что различные объекты можно хранить в общем массиве/спике/множестве, обращаясь к ним по общей логике, при этом когда ты обратился к объекту и вызвал у него какую-либо функцию, она вызывается именно для того типа, которым текущий объект является.
простая аналогия:
ребёнку дали яблоко, апельсин и конфету
ребёнок знает, что это за объекты
ребёнок берёт вначале конфету и применяет к ней метод слопать():
развернуть фантик и слопать то, что внутри.
далее ребёнок берёт апельсин и применяет к нему метод слопать():
снимает кожуру, разделяет на дольки и лопает каждую по очереди.
далее ребёнок берёт яблоко и применяет к нему метод слопать():
берёт его и лопает =)
итого мы имеем:
List<фрукт> list = new List<фрукт>{ яблоко, апельсин, конфета };
ребёнок (фрукт f : list)
    f.слопать();
надеюсь стало понятнее для чего это вообще нужно.


16533. --
Андрей Шевченко
Андрей Шевченко
ответить
→  Иван Воронин  # Теория ООП / Мощь полиморфизма / 2018-01-30 09:43

Вроде немного понятнее стало. Спасибо.
Пример шикарен))


9752. --
chokayes
chokayes
ответить
→  Андрей Шевченко  # Теория ООП / Мощь полиморфизма / 2018-01-30 11:31

Может понравится такой пример:
есть три класса: Animal, Dog, Cat, последние два - наследники от Animal, метод makeSound() есть у всех троих.

public static void main(String[] args){
    Animal pet[] = new Animal[2];
    pet[0] = new Dog();
    pet[1] = new Cat();
    for (int i=0; i<2; i++)
    {
        pet[i].makeSound();
    }


  • Отчёт оценивали:
    6452Кирилл Шмойлов+1   11582Родион+1   459Сергей Сергеевич+1   3922Александр+1   3850Григорий+1   10167Игорь+1   1305Валерий+1   1Евгений Волосатов+1   8707Володимир+1   7119Новопашин Владимир+1   16533Андрей Шевченко+1   4395Денис+1   9980Timoha+1   16218Дмитрий0   10558Иван Воронин+1   7308AZANIR+1  

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





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

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

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

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


Научился: Создавать виртуальные функции и переопределять их в классах-наследниках. Создавать абстрактные классы и переопределять их в классах-наследниках.
Трудности: На этот раз гладко зашло)
Я в восторге от ООП в общем и полиморфизма в частности!)


Научился: Оптимизировал программу под использование полиморфизма. Прошел по шагам. Чем дальше прохожу по урокам курса, тем больше упрощается программа.)))