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

Можно ли переопределить статический метод

Нет, статические методы в Java нельзя переопределять, так как они связаны с классом, а не с экземпляром. При вызове статического метода выбор реализации определяется на этапе компиляции, а не во время выполнения (в отличие от обычных методов).

Пример:

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

class Child extends Parent {
    static void print() { System.out.println("Child"); } // Это скрытие (hiding), а не переопределение
}

public class Main {
    public static void main(String[] args) {
        Parent.print(); // "Parent"  
        Child.print();  // "Child"  
        
        Parent obj = new Child();
        obj.print();    // "Parent" (вызовется Parent.print(), а не Child.print())
    }
}

Если бы метод был переопределяемым, последний вызов вывел бы "Child".

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

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

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

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