Java upcast scope resolution issue
<p>I have a base class "Shapes" and an extended class "Circle".  Both have a getName method.
My test class is the "Driver" class. </p>

<p>I upcast a Circle object to Shapes and pass it to a function called polyTest.
In that function I want to call getName but I do not want the circle objects implementation of get name to be triggered but instead want the base classes implementation to be triggered.</p>

<p>super.getName() does not work.</p>

<p>My code is bellow.</p>

<pre><code>public class Driver{
     public static String polyTest (Shapes s){
        return s.getName(); 
       /*Instead of s.getName()... (gives me the Circle class implementation of getName() )
       I want to call s.Shapes::GetName, the base class implementation of getName. */
     }

     public static void main(String[] args){
      Circle c = new Circle();

      //Test Basic inheritance &amp; basic polymorphism.
      //System.out.print(c.getName());

      //Upcast test.
      Shapes s = (Shapes) c;
      System.out.print( polyTest(s) );    
     }
}

public class Circle extends Shapes{
     Circle(){
      super();
     }

     public String getName(){
      return "I am a Circle";
     }
}

public abstract class Shapes{
     Shapes (){
     }

     public String getName(){
      return "I am a Shape";
     }
}
</code></pre>
