2009-07-07 9 views
0

Ich weiß, dass, wenn wir eine virtuelle Funktion in unserer eigenen Basisklasse haben, durch Überschreiben in einer abgeleiteten Klasse und Berücksichtigung von Casting bei der Variablendeklaration, haben wir ein anderes Ergebnis als bei der Verwendung eines neuen Modifikators in der abgeleiteten Klasse. aber warum? Gibt es einen logischen Grund dafür oder müssen wir es ohne Grund lernen?Aus welchen logischen Gründen haben virtuelle und neue Modifikatoren unterschiedliche Auswirkungen auf Vererbung und Polymorphismus?

+0

ein Beispiel für das, worum du fragst, würde die Frage klarer machen –

Antwort

0

Ich nehme an, Sie beziehen sich auf C#.

Grundsätzlich verwenden Sie den Modifizierer new, wenn die Unterklassenmethode nichts mit der Superklassenmethode zu tun hat. Sie teilen den Namen, aber es gibt kein gemeinsames polymorphes Verhalten. Wenn Sie den Namen polymorph neu definieren, nennt man das Überschreiben.

0

Anstatt den neuen Operator zu verwenden, würde ich empfehlen, einen anderen Namen für die Methode zu wählen.

Verwandte Themen