Попробуйте для себя написать простенькую программу, которая будет рисовать разные фигуры (квадрат, эллипс, ромб) на экране.
Вскоре вы обнаружите, что постоянно писать:
for (Square s: squares) {
s.draw();
}
for (Ellipse e: ellipses) {
e.draw();
}
for (Diamond d: diamonds) {
d.draw();
}
...
довольно неудобно, особенно если потом понадобится добавить еще фигуры. Куда лучше будет объявить общий для фигур интерфейс с методом draw() и использовать в коде именно его:
for (Figure f: figures) {
f.draw();
}