Angenommen, es gibt eine Basisklasse Aund eine abgeleitete Klasse B.
Klasse Ahat zwei Funktionen: fun1()und fun2(), wo fun1()Anrufe fun2().
Klasse Büberschreibt fun1()und fun2()und fun1()ruft erneut auf fun2().
Ich möchte jedoch base.fun1()Overriden anrufen fun2(). Da base.fun1()Aufrufe fun2()anstelle der Version der Basisklasse eine ziemlich unglückliche Schleife erzeugen:
fun1() -> fun2() -> base.fun1() -> fun2() -> base.fun1() -> ...
Gibt es eine Möglichkeit, base.fun1()das Aufrufen der Basisversion von zu erzwingen fun2()? Ich bin mir bewusst, dass das eigentliche Problem wahrscheinlich in der schlechten Gestaltung dieser Klassen liegt, aber ich bin immer noch neugierig, ob es irgendwie möglich ist.
fun1() -> fun2() -> base.fun1() -> base.fun2(). Leider werden nach dem Überschreiben stattdessenbase.fun2()diebase.fun1()Anrufefun2()getätigt.