title: Pointcut confusion with inheritance
body: <p>I am confused by writing a pointcut that matches all executions of a method. I tried the pointcut that should match all method-executions of class <code>Alpha</code>:</p>
  
  <pre><code>execution(* Alpha.*(..))
  </code></pre>
  
  <p>with the following class-hierachy</p>
  
  <pre><code>public class Alpha {
      public void alphaMethod() {...}
  }
  public class Beta extends Alpha {
      public void betaMethod() {
          alphaMethod();
      }
  }
  </code></pre>
  
  <p>If the Main-program calls <code>alphaMethod</code> on an <code>Beta</code>-instance my advice is called like expected but the Main-program calls <code>betaMethod</code> that also calls <code>alphaMethod</code> inside my advice is not called and I don't understand why.</p>
  
  <p><em>Aspect-Definition</em>:</p>
  
  <pre><code>@Aspect
  public class MyAspect {
      @Before(value = "execution(* Alpha.*(..))", argNames="joinPoint")
      public void myAdvice(JoinPoint joinPoint) {
          System.out.println("BEFORE: " + joinPoint.getSignature());
      }
  }
  </code></pre>
  
  <p><em>Main-method</em>:</p>
  
  <pre><code>Beta beta = ...;
  beta.alphaMethod(); //advice is called
  beta.betaMethod(); //advice is NOT called.
  </code></pre>