*
ff ist vom Typ Mitte , wird jedoch über die Schnittstelle von Oben angesprochen und kennt daher nur die Methoden gg(Oben) und gg(Mitte) . Du rufst auf ff eine Methode gg mit dem Argument uu vom Typ Unten auf, für die jedoch keine direkte Überladung von gg bekannt ist in Oben . Aufgrund der Vererbungshierarchie wird nun aber uu als Mitte angesprochen, also die Methode gg(Mitte) von Oben aufgerufen, die auch in Mitte nicht überschrieben wurde. Darum ist die Ausgabe "B". Das Verhalten ist korrekt
BTW, falls dir meine Erklärung schwierig scheint, liegt dies eventuell auch an deinen Bezeichnern^^