package test; import java.util.ArrayList; import java.util.List; public aspect ListFactoryAspect { private ListFactory listFactory = new ListFactory() { public List createList() { return new ArrayList(); }; public List createList(int initialCapacity) { return new ArrayList(); }; }; declare parents: Processor implements ListFactoryConsumer; public ListFactory ListFactoryConsumer.getListFactory() { return ListFactoryAspect.aspectOf().listFactory; } public List ListFactoryConsumer.createList() { return getListFactory().createList(); } public List ListFactoryConsumer.createList(int initialCapacity) { return getListFactory().createList(initialCapacity); } }