In java.lang.module.ModuleClassLoader: public boolean isModulePresent(String mn) { return ((org.openjdk.jigsaw.Loader)this).isModulePresent(mn); } And in org.openjdk.jigsaw.Loader this method is indeed overridden. Would it not be more straightforward to just mark isModulePresent abstract?