title: How to choice what method should be called when use polymorphism
body: <p>I need a way to choice who method should be called.</p>
  
  <p>I'm calling a parent method who calls one of its methods using "this". The problem is that I override that method in my class so when call the parent method then It calls to my method instead of its method.</p>
  
  <pre><code>public class MainTest    
  {
      public static class A
      {
         public String m1()
         {
               return this.m2();
         }
  
         public String m2()
         {
             return "A.m2() called";
         }
      }
  
      public static class B extends A
      {
          @Override
          public String m1()
          {
            return "B.m1() called";
          }
  
          @Override
          public String m2()
          {
            return "B.m2() called";
          }
  
          public String m3()
          {
            return super.m1();
          }
      }
  
      public static void main(String[] args)
      {
          System.out.println(new B().m3());
      }
  }
  </code></pre>
  
  <p>I want to achieve "A.m2() called", but the actual output is "B.m2() called"</p>