Это невозможно в Java.Вы можете использовать super
, но он всегда использует метод в непосредственном суперклассе в иерархии типов.
Также обратите внимание, что это:
Foo f = (Foo) this;
f.fn();
- это само определение polymoprhism как работает виртуальный вызов: хотя f
имеет тип Foo
, но во время выполнения f.fn()
отправляется на Bar.fn()
.Тип времени компиляции не имеет значения.