The compiler knows display () can be called, so it is satisfied; the run-time, however, only cares about what's in memory, so it invokes the Derived object's display ().
The compiler cannot vouch for Base's ability to call uniqueDisplay ().