Полагаю, вы спрашиваете о двух вещах
1) Я читал о полиморфизме, и после некоторого поиска я был озадачен различием полиморфизма во время компиляции и во время выполнения.
Давайте немного разделим воду здесь ...
Во время компиляции компилятор проверяет и преобразует код в байт-коды.Вызовы статических методов разрешаются на этом этапе, так что вы знаете, что каждый раз, когда статический метод вызывается, один и тот же, и происходит единственная реализация.
полиморфизм во время выполнения - это то, что происходит при выполнениирешить, какую реальную реализацию данного метода выбрать.Учитывая, что каждый класс в иерархии обеспечивает одну реализацию этого «полиморфного» метода.За кулисами компилятор проделывает большую работу по архивированию, используя механизм, известный как поздняя привязка .
2) Если мы хотим иметь возможность заменить класс надругой класс, который выполняет ту же задачу, но другим способом, без необходимости перекомпиляции вызывающего их класса. Переопределяет ли метод перегрузку метода или метода?
Вы на самом деле не говорите, что заменяет , inteads говорит о , расширяет , это то, что вы делаете, когда класс расширяет другой .И реализации метода в родительском классе могут быть перезаписаны в подклассе. Перегрузка , не имеет ничего общего с иерархиями, заключается в написании того же метода с набором параметров, отличающихся от других.