For compile time polymorphism, the method execution path / method binding happens at the compile time. For run time, it happens at run time, which it provides which method to be called will be decided at run time, eventually the method binding happens at run time. Early binding is implemented using Method over-loading, with same function name having different parameters. Late binding is implemented using method over-riding.
Polymorphism is simply, One Interface having many forms. Means that we have a single method that performs / exhibits / behaves differently depending on the situation.
Plz refer the Link : https://msdn.microsoft.com/en-us/library/ms173152.aspx