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

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

В Java статический класс (вложенный static класс) не может иметь переопределяемых методов, так как статические методы не поддерживают полиморфизм. Однако можно объявить статический метод с тем же именем в подклассе, но это будет сокрытие метода (method hiding), а не переопределение.

Пример:

java
class Outer {
    static class Parent {
        static void print() {
            System.out.println("Parent");
        }
    }
    
    static class Child extends Parent {
        static void print() { // method hiding, not overriding
            System.out.println("Child");
        }
    }
    
    public static void main(String[] args) {
        Parent.print(); // "Parent"
        Child.print();  // "Child"
    }
}

Вызов зависит от типа ссылки, а не от объекта. Для переопределения используйте обычные (не статические) методы.

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

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

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

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