Überschreiben
(engl.: overriding) macht es möglich, dass Operationen mit
gleichen Bezeichnern und gleichen Parameterlisten (also gleicher
Signatur) ohne Konflikte nebeneinander existieren können. Eine
bereits definierte Operation kann in einer abgeleiteten Klasse unter
Verwendung der gleichen Signatur neu definiert werden. Beim Aufruf
erkennt das Laufzeitsystem anhand der Unterklasse, zu der das Objekt
gehört, welche Version auszuführen ist. Zwei syntaktisch
völlig übereinstimmende Aufrufe können sich auf zwei
unterschiedliche Methoden beziehen je nachdem, auf welche Art Objekt
die Objektvariable verweist: Der Methodenname wird erst zur Laufzeit
an die entsprechende Methode gebunden (dynamische Bindung,
Polymorphie).