interface IRequestablePage {} abstract class Page implements IRequestablePage {} abstract class BTest { public final void setResponsePage(final Class cls) {} public final void setResponsePage(final Class cls, int i) {} public abstract Class getHomePage(); { setResponsePage(getHomePage()); } public BTest(Class homePage) { ALink link = new ALink() { { setResponsePage(homePage); } }; } } class ALink extends BTest { public ALink() { super(null); } @Override public Class getHomePage() { return null; } }