Почему возможно получить доступ к статическому методу моего суперкласса из дочернего экземпляра?Почему я могу получить доступ к статическому методу моего супер-класса из дочернего экземпляра?
public class Test {
public static void main(String[] args) {
new UtilImpl().fun();
new AbstractUtil() {}.fun();
}
static abstract class AbstractUtil {
public static void fun() {
System.out.println("Fun!");
}
}
static class UtilImpl extends AbstractUtil {
}
}
Я могу согласиться с доступом к статическому методу родительского класса из экземпляра родительского класса. Но если я создаю экземпляр дочернего класса, странно иметь доступ к статическому контексту родительского класса.
PS
И каковы преимущества вызова статического метода, например?
Почему? Потому что это указано именно так. Однако вы получите предупреждение. – Dici
Эта тема очень хорошо освещена примерами и пояснениями здесь: https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html –
Вопрос на самом деле неинтересен, проверьте вопрос SO, который я связал – Dici