Why does not Java support dynamic polymorphism for static methods? If the answer is "static methods are not supposed to be called on instances and hence method call is not needed to be resolved at runtime", then further question is 'Why does Java allow me to call static methods on instances?'. Why doesn't it simply block the user from calling the method on instances directly by giving some compile time error.
Otherway round, What would have gone wrong if Java would have supported Runtime Polymorphism for static methods?