Без использования каких-либо причудливых терминов, скажем, вы создаете API, и есть метод с именем crush
, который, скажем, уничтожает или уничтожает любой параметр, который ему присвоен. Если вы будете следовать по своему пути, вам придется использовать по крайней мере три разных метода, каждый для int, float и char (в качестве примера я использую самые общие типы). Теперь, чем больше типов, тем больше методов вам придется создавать с таким большим количеством разных имен. Поэтому разработчик, использующий ваш API, должен будет запомнить так много разных имен для чего-то простого, как метод, который уничтожает его параметр. Насколько это сложно, это также гораздо менее читабельно, потому что, опять же, запоминание слишком большого количества имен для единственной функции (функции, как в задании).
Перегрузка метода используется не для всех, она предназначена для методов или функций, которые могут принимать разные типы данных в разных точках, но внутренне следуют постоянной процедуре или выполняют единичную вещь независимо от типа данных это передано.
Вы не будете писать одну версию print, которая принимает int в качестве параметра и возвращает его модуль, и другую версию print, которая принимает строку в качестве аргумента и печатает ее в стандартный вывод. Вы можете, но это не так, как это должно быть использовано.