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.