Can I call an overridden method from the super of the super?-Collection of common programming errors
It’s not possible in Java. You can use super but it always uses the method in immediate superclass in type hierarchy.
Also note that this:
Foo f = (Foo) this;
f.fn();
is the very definition of polymoprhism how virtual call works: even though f is of type Foo, but at runtime f.fn() is dispatched to Bar.fn(). Compile-time type doesn’t matter.