Static methods are class levele methods and hence can't be over ridden . OOPS concepts like inheritance work on objects not on classes . static is provided so that you don't need to create objects of the class . If objects aren't created then how will you have inheritance
Static methods are accessed using class name and not from an instance of a class.
It therefore follows that the class type for the static method is the one that is set at complie time. As for the non-static (and non-final) methods, it is the runtime type of the class that determines which class' method to invoke.
Thanks to everybody who responded! I think I understand it better now -- especially, that I was approaching it from the wrong direction, trying to figure out what would be 'bad' about overriding a static method rather than thinking about the logic of the language. -Karen.