import java.util.*; interface GenericIFace { public void save(B bean); public void saveAll(Collection beans); } class C implements GenericIFace { public void save(A bean) {} public void saveAll(Collection bean) {} } aspect X { before(): execution(* GenericIFace.save*(..)) { } // before(): execution(* GenericIFace+.save*(..)) { } }