Overriding vs. Hiding
There are two major differences between hiding and
overriding.
Hiding has no requirements on the signatures
whereas overriding requires exactly the same
signature and return type.
Second, hiding uses the static type of the object
at compile time to determine which member
function to bind whereas overriding uses the
dynamic type of the object at run time to
determine which member function to bind.