Why does my static block allows to call parent class static method without using parentclass reference?

From what I understand, usually the static method should be called using class’s reference or it can be called directly without reference if its in a static method or static block.

But does this apply when static method is called from child class static blocks?

Why it allows such thing, as static methods are not inherited, it should only be allowed using parent class name right?

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();
    }
}

Why my child class static block can call parent class static method without reference or classname?

Solution:

Static method n() is inherited by subclass myclass, so you can call it directly in the static block of myclass.

Why does an interface hosting main in Java 8 not have to be public?

Why does the following code compile and run successfully in Java 8+eclipse?

package package1;
interface A  
{
    static void main(String[] args) {
        System.out.println("Hi");
    }
}

If A is changed to a class, the run-time requires it to be a public class, but not so for an interface. This seems inconsistent.

EDIT: The above statment that I made when posting the question was WRONG. ( I must have been tired and misread the errors ). Java does NOT require the class hosting main to be public, only the method.
However, it is a bit inconsistent that the type hosting main does not have to be public, while the main method does.

Solution:

If A is changed to a class, the run-time requires it to be a public class.

No it doesn’t. It requires the method to be public, and methods in interfaces already are public.

but not so for an interface.

Not so.

This seems inconsistent.

It isn’t. You misread the error message.