Method hiding — это механизм, при котором статический метод суперкласса "скрывается" статическим методом с той же сигнатурой в подклассе. Это не переопределение, а скрытие.
🔹 Как это работает:
- Тип метода определяется на этапе компиляции, основываясь на типе ссылки.
- Если ссылка относится к суперклассу, вызывается метод суперкласса. Если к подклассу — метод подкласса.
🔹 Пример:
class Parent {
static void show() {
System.out.println("Parent static method");
}
}
class Child extends Parent {
static void show() {
System.out.println("Child static method");
}
}
Parent parent = new Child();
parent.show(); // Выведет "Parent static method"⚠️ Это не работает для нестатических методов — там всегда используется переопределение, а метод определяется во время выполнения (runtime).