title: Abstract method restriction control for derived classes
body: <p>Is it possible for an abstract base class to have abstract methods where only certain derived classes have access to certain abstract methods? What I'm trying to do is limit possible methods being able to be called from different inherited classes. Here is an example of my question:</p>
  
  <pre><code>public abstract Foo
  {
      ...
      public abstract void fooMethod1(int num1);
      public abstract void fooMethod2(int num2);
  }
  
  public Bar1 extends Foo // This class shouldn't be able to access fooMethod2()
  {
      ...
      @Override
      public void fooMethod1(int num1)
      {
          System.out.println((num1 * 5));
      }
  }
  
  public Bar2 extends Foo // This class has no restrictions
  {
       ...
       @Override
       public void fooMethod1(int num1)
       {
            System.out.println((num1 * 10));
       }
  
       @Override
       public void fooMethod2(int num2)
       {
            System.out.println((num2 * 5));
       }
  </code></pre>