Static Binding
Static binding occurs when an object is associated with a
member function based on the static type of the object.
The static type of an object is the type of its class or the
type of its pointer or reference.
A member function statically bound to an object can be
either a member of its class or an inherited member of a
direct or indirect base class.
Since static binding occurs at compile time, it is also
called compile time binding.