Heim > Backend-Entwicklung > C++ > Was ist der Unterschied zwischen Schlüsselwörtern 'New' und 'Override' in der Methode -Vererbung?

Was ist der Unterschied zwischen Schlüsselwörtern 'New' und 'Override' in der Methode -Vererbung?

DDD
Freigeben: 2025-01-28 11:56:09
Original
259 Leute haben es durchsucht

What's the Difference Between `new` and `override` Keywords in Method Inheritance?

im Depetenverständnis von Schlüsselwörtern "neu" und "überschreiben"

In der Objekt -orientierten Programmierung ist die Vererbung das Kernkonzept, das es Derivaten ermöglicht, das Verhalten von Basisklassen zu erweitern und zu ändern. Bei der Definition dieser Klassen müssen Entwickler möglicherweise neu schreiben oder eine neue Implementierung erstellen. Um diesen Unterschied zu verdeutlichen, untersuchen wir die folgenden Szenen:

Szene 1: Basisklasse

Diese Grammatik deklariert eine virtuelle Methode in der Basisklasse. Die virtuelle Methode kann in der Derivatkategorie umgeschrieben werden, um eine spezifische Implementierung bereitzustellen.

public virtual void DoIt();
Nach dem Login kopieren
<景> Szene 1: Divisionsklasse

In der abgeleiteten Methode erzeugt die Verwendung von "neu" eine neue und unabhängige Methode, und ihr Name ist die gleiche wie die Methode in der Basisklasse. Dies wird jedoch nicht als neu geschrieben angesehen, und wenn die Basisklasse aufgerufen wird, wirkt sich das Verhalten der Basisklassenmethode nicht auf das Verhalten der Basisklasse aus.

<景> Szene 2: Basisklasse
public new void DoIt();
Nach dem Login kopieren

Dies ist eine nicht -fassende Methode und kann in der abgeleiteten Klasse nicht umgeschrieben werden. Die Derivate müssen den "neuen" Modifikator verwenden, um eine neue Methode mit demselben Namen zu erreichen. <景> Szene 2: Divisionsklasse

public void DoIt();
Nach dem Login kopieren

"override" -Modifikatoren zeigen an, dass die Methode in der Ableitungsklasse eine andere Methode derselben Signatur in der Basisklasse umschreibt. Wenn das Aufrufen von einer Basisklasse aufgerufen wird, wird die Umschreibungsmethode ausgeführt.

<际> Tatsächliche Unterschiede

public override void DoIt();
Nach dem Login kopieren

Überschreibung:

Egal wie der Referenztyp, solange die Methode aufgerufen wird, die Umschreibungsmethode in der abgeleiteten Klasse wird aufgerufen.

neu: Nur wenn auf das abgeleitete Klassenobjekt verwiesen wird, wird die neue Methode, die in der abgeleiteten Klasse erstellt wurde, aufgerufen.

  • Empfohlene Verwendung
  • Wenn das Verhalten von erweiterten Vererbungsmethoden empfohlen wird, wird normalerweise "Override" empfohlen. Wenn Sie in der abgeleiteten Klasse eine neue Methode mit demselben Namen erstellen möchten, verwenden Sie "Neu".
  • Beispiel
Betrachten Sie den folgenden Code:

In diesem Beispiel "abgeleitet.doit ()" neu geschrieben "base.doit ()" und wenn die Methode "b" variable "doit ()" aus dem "b" -Variablen "abgeleiteten" Objekt aufgerufen wird, wird es aufgerufen. wird gerufen, um es zu nennen.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Schlüsselwörtern 'New' und 'Override' in der Methode -Vererbung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage