Встречается на собеседованиях • сегодня

Почему статический метод нельзя переопределить

Статические методы принадлежат классу, а не экземпляру, поэтому они не участвуют в полиморфизме. При вызове статического метода выбор реализации определяется на этапе компиляции по типу ссылки, а не по реальному объекту (как с обычными методами).

java
class Parent {
    static void print() { System.out.println("Parent"); }
}

class Child extends Parent {
    static void print() { System.out.println("Child"); }
}

Parent obj = new Child();
obj.print(); // Выведет "Parent", а не "Child"

Это называется сокрытием метода (method hiding), а не переопределением. Для переопределения нужно использовать аннотацию @Override и нестатический метод.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы