Почему в Java переопределение (override) статического метода не является таковым?

Есть два класса, второй наследуется от первого:

public class Test {
	static public void doStuff() {
		System.out.println("Test static method do stuff!");
	}
}

public class TestChild extends Test {
	static public void doStuff() {
		System.out.println("TestChild static method do stuff!");
	}
}

Всё работает, метод переопределяется. Однако, если на метод наследника повесить аннотацию @Override, то будет ошибка, текст которой гласит:
Method does not override method from its superclass

Как же так? Ведь метод как раз таки переопределён!
  • Вопрос задан
  • 773 просмотра
Решения вопроса 2
EreminD
@EreminD
Кое-что умею
Ответ написан
Комментировать
iLLuzor
@iLLuzor
Java, Kotlin, Android Developer
Потому что это не переопределение, а сокрытие.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы