Можно создать массив объектов типа Shape. Это могут быть кружки, треугольники, прямоугольники или другие фигуры. Они унаследованы от фигуры Shape. И потом у всех них можно вызвать метод Draw. Кстати я еще смотрю есть линии - вот у линий тоже можно вызвать этот метод. В этом мощь полиморфизма и его суть. То есть у разных объектов можно вызвать один и тот же метод.
Все это интересно, но пока что не совсем понятно мне. Наверное со временем понимание придет)) Вроде и понятно и непонятно одновременно. Как-то так)) Возможно еще от того, что, бывает, делаешь один урок за другим и информации много получается. А с другой стороны интересно и хочется сделать следующий урок.
Ничего страшного, если что-либо не понятно сразу, двигайся дальше, если хочешь, можешь сделать себе пометку, чтобы потом вернуться и углубиться подробнее, погуглить и т.д., вариантов великое множество, но лучше просто двигаться дальше, набивая практику, постепенно, когда будешь сталкиваться с подобными реализациями в коде, но с другой колокольни, это как 3D, тебе будет становиться всё яснее и яснее. Удобство в том, что различные объекты можно хранить в общем массиве/спике/множестве, обращаясь к ним по общей логике, при этом когда ты обратился к объекту и вызвал у него какую-либо функцию, она вызывается именно для того типа, которым текущий объект является.
простая аналогия:
ребёнку дали яблоко, апельсин и конфету
ребёнок знает, что это за объекты
ребёнок берёт вначале конфету и применяет к ней метод слопать():
развернуть фантик и слопать то, что внутри.
далее ребёнок берёт апельсин и применяет к нему метод слопать():
снимает кожуру, разделяет на дольки и лопает каждую по очереди.
далее ребёнок берёт яблоко и применяет к нему метод слопать():
берёт его и лопает =)
итого мы имеем:
List<фрукт> list = new List<фрукт>{ яблоко, апельсин, конфета };
ребёнок (фрукт f : list)
f.слопать();
надеюсь стало понятнее для чего это вообще нужно.
Вроде немного понятнее стало. Спасибо.
Пример шикарен))
Может понравится такой пример:
есть три класса: 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();
}