Насколько я понимаю, обычно статический метод следует вызывать с использованием ссылки на класс или его можно вызывать напрямую без ссылки, если он находится в статическом методе или статическом блоке.
Но применимо ли это, когда статический метод вызывается из статических блоков дочернего класса?
Почему это разрешено, поскольку статические методы не наследуются, это должно быть разрешено только с использованием имени родительского класса?
public abstract class abs {
/**
* @param args
*/
abstract void m();
static void n(){
System.out.println("satic method");
}
public static void main(String[] args) {
// TODO Auto-generated method stub
}
}
class myclass extends abs{
@Override
void m() {
// TODO Auto-generated method stub
}
static{
n();
}
}
Почему мой статический блок дочернего класса может вызывать статический метод родительского класса без ссылки или имени класса?