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.