Hallo zusammen.
Hab ein kleines Problem, und schaff einfach nicht eine schöne Lösung zu finden.
BasisKlasse
C#-Quelltext
1: 2: 3: 4:
| public abstract class Signal { public abstract double[] calcOutput(long StartPoint, long EndPoint, int Rate); } |
Erste geerbte Klasse.
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public class DreiecksSignal : Signal { public override double[] calcOutput(long StartPoint, long EndPoint, int Rate) { .... .... if(..)calcOutput(StartPoint + Weiter,EndPoint,Rate) } } |
Vererbte Klasse
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| public class MehrfachDreiecksSignal : DreiecksSignal { public override double[] calcOutput(long StartPoint, long EndPoint, int Rate) { ... ... base.calcOutput(StartPoint, EndPoint, Rate); } } |
Also hier liegt das Problem. Wenn ich in MehrfachDreiecksSignal die Funktion in der MutterKlasse aufrufe und in der MutterKlasse wieder calcOutput aufgerufen wird, lande er wieder in MehrfachDreiecksSignal. Meine Frage ist wie kann ich das verhindern. Kleine Anmerkung noch, new anstatt override habe ich auch schon probiert. Leider wird wenn ich einen Array von Typ Signal habe und dort ein MehrfachDreiecksSignal drin ist nicht die richtige Funktion aufgerufen, sondern die von DreiecksSignal.
Danke schonmal in voraus.