Hello,
Technically static methods can be overridden. My understanding is that overriding facilitates two functionalities and I don't know if we call a method to be overridden if and only if these two clauses are satisfied.
1. dynamic method lookup
In this case, static methods will not use the dynamic method lookup. We can say,
Superclass sc = new Childclass();
sc.overRiddenMethod();
where overRiddenMethod() is a static method in both super and child classes, and jre will execute the super class' static method instead, i.e. not performing the dynamic lookup.
2. providing a new functionality for the child class while hiding the superclass functionality.
If you say,
ChildClass cc = new Childclass();
cc.overRiddenMethod();
( ideally we shud be doing ChildClass.overRiddenMethod() as it's a static method, but for simplicity I am using this snippet)
In this case, the overriddenmethod of the child class is called.
-Guru.