A virtual function has the same argument types as one in a base class, but differs in one or more of the following: