Polymorphism is the ability to take many forms. Method overriding is runtime polymorphism.
My questions are:
Is there anything like static polymor
Polymorphism at runtime takes the form of "dynamic dispatch". That is, the actual method that gets called is determined based on the actual instance you are invoking the method on. Obviously, this applies only when you have an instance of a class, so strictly speaking, polymorphism does not apply to hiding of static methods. For further explanation of the difference check here.