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
A
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
- 1. C++ Polymorphismus und virtuelle Funktion
- 2. Implementieren Laufzeit Polymorphismus und Vererbung
- 3. const und virtuelle Vererbung
- 4. Standardkonstruktor und virtuelle Vererbung
- 5. C++ Polymorphismus und nicht virtuelle Funktionen
- 6. Virtuelle Vererbung und parametrisierte Konstruktoren
- 7. Fragen zu C++ virtuelle Vererbung
- 8. Polymorphismus und Vererbung mit Klassenreferenz? unter
- 9. Multiple Vererbung, virtuelle Methoden Kollision und Zeiger aus Basisklassen
- 10. Virtuelle Tabelle in Polymorphismus
- 11. Mixing virtuelle und nicht virtuelle Vererbung einer Basisklasse
- 12. Java Vererbung vs Polymorphismus
- 13. virtuelle Vererbung
- 14. Polymorphismus vs Vererbung. Diffrence?
- 15. Vererbung Polymorphismus Frage
- 16. Aus welchen Gründen wählen Menschen Ruby über Java?
- 17. Aus welchen Gründen wird NHibernate SQL nicht ausführen?
- 18. Polymorphismus oder Vererbung in JSON mit Java und Ruby
- 19. Virtuelle Vererbung mit Constructor Vererbung
- 20. Aus welchen Gründen wird die CPU-Nutzung nicht zu 100% mit C# und APM ausgeführt?
- 21. Polymorphismus und private Datenelemente
- 22. Welchen Zeichensatz haben MD5 und SHA?
- 23. C++: virtuelle Vererbung
- 24. Vererbung von Klassen ohne virtuelle Destruktoren
- 25. AVAudioRecorder und AVAudioPlayer Audio haben unterschiedliche Länge
- 26. Aus welchen Gründen sind Protokolle und Multimethoden in Clojure weniger leistungsfähig für Polymorphie als Typklassen in Haskell?
- 27. Zurück und Nav Up haben unterschiedliche Ergebnisse
- 28. Warum imageView.setLayerType (View.LAYER_TYPE_SOFTWARE, null); und <application android: hardwareAccelerated = "false" haben unterschiedliche Auswirkungen?
- 29. Haben "" und "" unterschiedliche Bedeutungen in JavaScript?
- 30. Welchen Zweck haben virtuelle Attribute in Dynamic CRM?
ein Beispiel für das, worum du fragst, würde die Frage klarer machen –