nPure polymorphism requires four things to happen before it is in effect.
nFirst, we must have an inheritance hierarchy using public derivation.
nSecond, we must declare a
public member function to be
virtual in either a direct or indirect base class.
nThird, an overridden member function implemented in a derived class must have exactly the same signature and return type as the virtual function declaration.
nFourth, the overridden function must be accessed through a direct or indirect base class pointer or reference.