Hallo und

im Forum!
Das Problem ist, dass eine statische Methode nicht von einer Objektinstanz abhängt. Deshalb kann man diese nicht überschreiben.
Ein kleines Beispiel:
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:
| public abstract class Test { public abstract void callme(); }
public class Test1 : Test { public override void callme() { } }
public class Test2 : Test { public override void callme() { } }
Test a = new Test1(); a.callme(); a = new Test2(); a.callme(); |
Du hast also eine Variable vom Typ der Elternklasse und es wird zur Laufzeit bestimmt, welche Methode dann konkret aufgerufen wird.
Wenn du aber eine abstrakte Methode hast, dann hast du ja keine Instanzvariable. Du musst den Typ also direkt hinschreiben beim Aufruf. Deshalb verstehe ich da nicht so ganz was du da mit einer abstrakten Methode überhaupt erreichen willst, selbst wenn es ginge?