import org.aspectj.lang.annotation.*; @Aspect public abstract class AbstractMethods { @Pointcut protected abstract void tracingScope(); @Before("tracingScope()") public void doit() { test(); System.out.println("advice running"); } protected abstract void test(); } /* public abstract aspect AbstractMethods { protected abstract pointcut tracingScope (); before () : tracingScope () { test(); System.out.println("advice running"); } protected abstract void test (); // protected void test () {} } */