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

Что такое сокрытие методов

Сокрытие методов (method hiding) в Java происходит, когда подкласс определяет статический метод с такой же сигнатурой, как и статический метод в родительском классе. В отличие от переопределения (override), здесь нет полиморфного поведения - вызывается метод того класса, по типу ссылки которого происходит вызов.

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

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

public class Main {
    public static void main(String[] args) {
        Parent p = new Child();
        p.print(); // Выведет "Parent" (не "Child"!)
        Child.print(); // Выведет "Child"
    }
}

Ключевые моменты:

  • Работает только для static методов
  • Нет аннотации @Override
  • Вызов зависит от типа ссылки, а не от реального объекта
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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