Zitat von
SirThornberry:
eben mit overload sagst du dem compiler das du eine zweite methode mit gleichem namen hast. Da du aber von einer klasse abgeleitet hast welche bereits eine virtuelle Methode mit dem Namen und den gleichen Parameter hat verdeckst du diese (daher auch die Warnung des Verdeckens). Mit einem Cast auf die Vorgängerklasse könnte man also weiterhin die verdeckte Methode aufrufen. Die Warnungen und Fehler haben alle ihre Rechtigkeit und sind auch logich (zumindest aus meiner Sicht)
Ich habe aber in der "overload; override;" Variante keine Warnung, sondern der Compiler ist sehr glücklich mit meinem Source.
Habe ich nur das overload stehen, wird der originale Konstruktor verdeckt (deswegen dann ja auch die entsprechende Warnung), aber mit dem override sage ich doch normalerweise: da gibt es was in der Original-Klasse, bitte berücksichtige das auch....
Mein Verständnisproblem ist also momentan: verdecke ich den original Konstruktur (mittels overload) oder überschreibe ich ihn (mittels override).
Wenn ich mittels des ersten overload nur sage, da könnte evtl. noch eine Methode mit gleichem Namen geben, dann verstehe ich nicht das reintroduce im zweiten Konstruktor.
Ich glaube, ich schlafe erst einmal über dieses Thema (hab endlich Feierabend
)