A derived class can provide its own version of a base class function. This is called overriding. The derived version runs instead of the base version when called on a derived object.
To override, declare a function in the derived class with the exact same signature as the base class function. The return type, name, and parameters must all match precisely. Overriding lets derived classes customize behavior.
A Shape base class might have a draw() function, while Circle and Rectangle each override it with their specific drawing logic.