Entwickler-Ecke
C# - Die Sprache - Warnung methode ... blendet den vererbten Member
Erwin Z - Do 16.10.08 16:53
Titel: Warnung methode ... blendet den vererbten Member
Hallo,
bin absoluter Anfaenger und probiere gerade in C# zu ueben .
Kann mir jemand helfen, warum diese Warnung kommt:
Warnung 3 "ConsoleApplicationFactoryMuster.MuenchenerTomatenPizza.schneiden()" blendet den vererbten Member "ConsoleApplicationFactoryMuster.Pizza.schneiden()" aus. Verwenden Sie das new-Schlüsselwort, wenn das Ausblenden vorgesehen war. C:\Users\edderze\Documents\Visual Studio 2008\Projects\ConsoleApplicationFactoryMuster\ConsoleApplicationFactoryMuster\Program.cs 97 22 ConsoleApplicationFactoryMuster
Hier ist das programmteil:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44:
| public abstract class Pizza { public String name; public String teig; public String sosse; public String[] belaege = new String [5]; public void vorbereiten () { Console.WriteLine ("Bereite " + name); Console.WriteLine ("Werfe Teig ... "); Console.WriteLine ("Fuege Sosse hinzu ... "); Console.WriteLine ("Fuege Belaege hinzu ..."); for (int i = 0; i < 5; i++) { Console.WriteLine (" " + belaege[i]); } Console.ReadLine(); } public void backen () { Console.WriteLine (" Backe 25 Minuten bei 350 Grad"); } public virtual void schneiden() { Console.WriteLine ("Schneide die Pizza diagonal in Stuecke"); } public void verpacken () { Console.WriteLine ("PAcke die Pizza in die officielle Pizzeria-Schachtel"); } public String getName () { return name; } } public class MuenchenerTomatenPizza : Pizza { public MuenchenerTomatenPizza () { name = "Tomatenpizza Muenchener Art"; teig = "Teig mit extra dicker Kruste"; sosse = "Holonesesosse";
belaege [0] = "Mozzarella"; belaege [1] = "Tomate gehackt"; } override void schneiden() { Console.WriteLine("Schneide die Pizza in Rechecke"); } } |
Moderiert von
Christian S.: C#-Tags hinzugefügt
Christian S. - Do 16.10.08 16:59
Hallo und :welcome:!
Ich denke, das liegt daran, dass die schneide-Methode in der abgeleiteten Klasse eine andere Sichtbarkeit als die in der Mutterklasse hat. Daher führst Du da im Prinzip eine neue Methode mit demselben Namen wie die alte Methode ein, welche damit verborgen wird.
Grüße
Christian
Erwin Z - Do 16.10.08 17:15
"DANKE fuer "WELCOME"
eigentlich die methode ist als virtual deklariert in der mutterklasse und dann mit override in der kindklasse ueberschrieben, sollte laut C# - buch richtig sein,
hmmm...
Christian S. - Do 16.10.08 17:17
Sie ist als public virtual deklariert, die Methode in der abgeleiteten Klasse aber nicht als public!
Erwin Z - Do 16.10.08 17:29
jetzt ist die warnung weg :)
VIELEN DANK!
wie fuegt man eigentlich C#-Tags?
Erwin Z - Do 16.10.08 18:02
C#-Quelltext
1: 2:
| Vielen Dank!!! + schoenen Abend noch...! |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!