yes you can write void display() on every derived classes to override base method

But you'd have to include the virtual keyword in the declaration of display() in the base class.

EDIT: Or to be more specific, you'd have to use the virtual keyword only if you want to access the different implementations of display() while using pointers to the base class. If you plan to use objects directly rather than pointers, or you use pointers to the derived classes, then you do not need the virtual keyword.