Overriding...What is it?
Within the object-oriented programming, function
overriding takes function hiding to the next level.
Instead of deciding which function to bind to an object
based on its static type at compile time, the decision about
which function to use is based on its dynamic type and is
postponed until run time.
This is called pure polymorphism.
Pure polymorphism defines an interface to one or more
virtual member functions in a base class that are
overridden in derived classes.