class A{
    public static void staticMethod(){
     System.out.println("Static method of A");
    }
}
class B extends A{
    public static void staticMethod(){
     System.out.println("Static method of B");
    }
}
class TestStaticOverride{
    public static void main(String args[]){
     B b=new B();
     A a=b;
     a.staticMethod();
    }
}
The output is "Static Method of A" . So static methods are not overridden otherwise the output would have been "Static Method of B". How at runtime JVM decides to call the static method of class A and not B.
 
     
     
     
     
    