code: private static Method getAccessibleMethodFromSuperclass
              (Class<?> clazz, String methodName, Class<?>[] parameterTypes) {
  
          Class<?> parentClazz = clazz.getSuperclass();
          while (parentClazz != null) {
              if (Modifier.isPublic(parentClazz.getModifiers())) {
                  try {
                      return parentClazz.getMethod(methodName, parameterTypes);
                  } catch (NoSuchMethodException e) {
                      return null;
                  }
              }
              parentClazz = parentClazz.getSuperclass();
          }
          return null;
      }
docs: <p>Return an accessible method (that is, one that can be invoked via
  reflection) by scanning through the superclasses. If no such method
  can be found, return <code>null</code>.</p>
  
  @param clazz Class to be checked
  @param methodName Method name of the method we wish to call
  @param parameterTypes The parameter type signatures