Java - Why Java doesn't allow Overriding Static Methods ?


Static methods belong to the class and not the objects. They belong to the class and hence doesn't fit properly for the polymorphic behavior. 

A static method is not associated with any instance of a class so the concept of overriding for runtime polymorphism using static methods is not applicable.

A counter argument could be that we can invoke static methods using objects of the classes and hence overriding would have made sense but again They might have ignore it as they would have thought of static methods being closer to the concept of classes and not of objects.

Hope it answers.