Method calls are always determined based on the runtime type of the object, however how can I call shadowed methods of base classes from an inherit instance?
class Base {
    String str = "base";
    String str() { return str; }
}
class Impl extends Base {
    String str = "impl";
    String str() { return str; }
}
class Test {
    public static void main(String[] args) {
        System.out.println(((Base) new Impl()).str);   // print 'base'
        System.out.println(((Base) new Impl()).str()); // print 'impl'
    }
}
For example above, how can I call the str() method of Base class from an Impl instance, preferably without using reflection?
 
    