Einzelnen Beitrag anzeigen

Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: Virtuelle Methode überladen

  Alt 4. Aug 2014, 08:41
Ich verstehe nicht, warum das so ist. Die Deklaration von TClass2.DoSomething unterscheidet sich doch von TClass1.DoSomething (es wird ja nur eine Überladung hinzugefügt). Warum wird dann die Methode aus TClass1 verborgen? Und wie kann ich das verhindern?
Rein theoretisch würde ich das auch nicht verstehen, aber in der Praxis musst Du die überladene Methode auch in der Grundklasse deklarieren.

Wenn das keine rein theoretische Frage ist, dann könnte das ein Hinweis auf ein schlechtes Design sein. Meistens findet man ein 'Workaround', d.h. eine Umformulierung des Codes, der sich im Nachhinein als sauberer herausstellt. Wieso z.B. muss die neue Methode genauso heißen? Macht sie wirklich das Gleiche?

@bepe: Ist dann in TClass2 auch 'DoSomething()' bekannt?
  Mit Zitat antworten Zitat