I have often been asked the difference between Early & Late Binding by a lot of my students. Here comes the answer. 

Binding is the act of associating an instance of a class with its member. If this happens at compile time, i.e., if the compiler can determine this at compilation time, we call it early binding. Example: Constructor Overloading

Late binding refers to the act of binding an object of a class with its member at runtime. This binding can only be determined by the compiler at execution or runtime. This is however comparitively slower than the former. Example: Virtual Methods.