В Java выбор, какую из перегрузок вызывать, всегда делается во время компиляции. Это относится к static
методам, методам экземпляров, а также конструкторам.
Обратите внимание, что эти два утверждения не противоречат. Первый говорит: «Если вы перегружаете метод stati c…», который называет правильный пример, но не исключает другие примеры. Аналогичным образом, другое утверждение «Перегрузка методов является примером полиморфизма времени компиляции» является более широким, но все же правильным, без упоминания конструкторов. Пока эти операторы не утверждают, что назвали все существующие примеры, они верны.
Тем не менее, в случае методов экземпляра выбранная перегрузка может также подвергаться полиморфизму времени выполнения при переопределении, в дополнение к полиморфизм во время компиляции. Наличие перегруженных и переопределенных методов может легко привести к ошибкам, поэтому их следует использовать с осторожностью или избегать.