Классический пример с площадью фигуры.
Представьте что у вас есть классы Круг, Квадрат, прямоугольник, треугольник. Каждый вычисляет площадь по своей собственной формуле.
Напишите метода куда передается список фигур и надо посчитать их общую площадь?
С интерфейсом Areaer и методом типов «Area() float» это элементарно.
С отдельными методами надо огромный switch и знать заранее о всех возможных фигурах.
А теперь представьте себе что пришло новое требование что фигуры с координатами и надо вычислить пересекающуюся область? С методом типа это делается довольно тривиально цепочкой вызовов одного и того же метода на списке фигур.
Короче говоря чтобы писать меньше кода.