Время компиляции и Класс нагрузки - это не одно и то же. И время выполнения (в том смысле, что я использую этот термин в следующем ...) снова что-то другое.
Анализ перегрузки выполняется по адресу Время компиляции, для обоих static
и вызовов метода экземпляра. То же самое верно для случаев, когда один метод static
теней другой метод static
- разрешено на время компиляции.
Переопределение диспетчеризации (например, методы) происходит по адресу Время выполнения; т.е. когда вызов метода фактически происходит, в зависимости от фактического объекта, который является «целевым» объектом.
почему Arrays.sort() перегружается, когда он статичен
Почему бы и нет?
Как я уже сказал, как static
, так и методы экземпляра могут быть перегружены. (Перекрытия ограничиваются методами экземпляра и методы экземпляра только ..., но перегрузка может использоваться со всеми видами методов и конструкторы тоже.)
Кроме того, «загрузка» и «перегрузка» совершенно несвязанные понятия , «Загрузка» - это получение классов (в этом случае) в память, но «перегрузка» относится к различным методам с разными сигнатурами, имеющими одно и то же имя.
Перегрузка метода и загрузка классов - это не связанные понятия. Google и читайте о них отдельно. –
Почему Arrays.sort() перегружен, когда он является статическим. – Tushar