But...back to static binding if...
If the signature of the overridden function is not
the same as the declaration of the virtual
function, overriding does not occur and the
virtual function is simply hidden.
In such cases, the virtual function invoked will be
an inherited function from a direct or indirect
base class determined at compile time.
Or, if the function is invoked through an object
rather than a pointer or a reference, static binding
will take place instead!