Override

Definition - Was bedeutet Überschreiben?

Überschreiben in C # ist ein Schlüsselwort, mit dem ein virtuelles Element, das in einer Basisklasse definiert ist, durch die Definition dieses Elements in der abgeleiteten Klasse ersetzt wird.

Mit dem Überschreibungsmodifikator können Programmierer die Spezialisierung eines vorhandenen virtuellen Elements angeben, das von einer Basisklasse geerbt wurde, um eine neue Implementierung dieses Elements in der abgeleiteten Klasse bereitzustellen. Es kann mit einer Methode, einer Eigenschaft, einem Indexer oder einem Ereignis verwendet werden, das in einer abgeleiteten Klasse geändert oder erweitert werden muss.

Der Override-Modifikator soll das Konzept des Polymorphismus in C # implementieren.

Das Überschreiben unterscheidet sich von neuen Modifikatoren dadurch, dass das erstere nur zum Überschreiben eines virtuellen Mitglieds einer Basisklasse verwendet wird, während das letztere auch dazu beiträgt, ein nicht virtuelles Mitglied, das in einer Basisklasse definiert ist, zu überschreiben, indem die in der Basisklasse enthaltene Definition ausgeblendet wird.

Technische.me erklärt Override

Override wird hauptsächlich im Kontext einer virtuellen Methode verwendet, bei der die Ausführung eines Methodentyps durch den Laufzeittyp der Instanz bestimmt wird, für die die Methode aufgerufen wird. Während des Aufrufs muss der Aufrufer nicht wissen, dass das aufgerufene Objekt eine Instanz einer abgeleiteten Klasse war.

Wenn Shape beispielsweise eine Basisklasse ist, die die grundlegende Implementierung bereitstellt, die allen Objekten ihrer Klasse gemeinsam ist, kann sie mit der virtuellen Methode CalculateArea definiert werden. Quadrat kann eine von Shape abgeleitete Klasse sein, die die CalculateArea-Methode überschreiben kann, um die für die Berechnung der Fläche eines Quadrats erforderliche Logik zu implementieren.

So überschreiben Sie eine Methode in einer abgeleiteten Klasse:

  • Die Methode in der Basisklasse muss mit dem virtuellen Modifikator deklariert werden.
  • Die Methode in der Basisklasse kann abstrakt, aber nicht statisch sein.
  • Der Zugriffsmodifikator der Methode in Basis- und abgeleiteten Klassen sollte identisch sein.
  • Die Methode sollte sowohl in abgeleiteten als auch in Basisklassen mit derselben Signatur definiert werden.

Diese Definition wurde im Kontext von C # geschrieben