Перегрузка методов в данном случае необходима для прозрачности кода. В определении класса "Архиватор" должны быть объявлены все перегруженные методы (с одинаковым именем) для всех типов и комбинаций входных переменных, классов и т.п. А в используемом этот класс коде мы прозрачно архивируем любой тип данных, используя одно и то же имя метода, что очень и очень удобно.
Да, кстати, неэффективного тут ничего НЕТ, этот механизм позволяет программисту лишь использовать единое имя, а методы в откомпилированном коде разные и компилятор в процессе компиляции на основе используемых типов входных данных понимает какой метод на самом деле выполнять.





Ответить с цитированием
