code: public MethodDoc overriddenMethod() {
  
          // Real overriding only.  Static members are simply hidden.
          // Likewise for constructors, but the MethodSymbol.overrides
          // method takes this into account.
          if ((sym.flags() & Flags.STATIC) != 0) {
              return null;
          }
  
          // Derived from  com.sun.tools.javac.comp.Check.checkOverride .
  
          ClassSymbol origin = (ClassSymbol)sym.owner;
          for (Type t = env.types.supertype(origin.type);
               t.hasTag(CLASS);
               t = env.types.supertype(t)) {
              ClassSymbol c = (ClassSymbol)t.tsym;
              for (Symbol sym2 : membersOf(c).getSymbolsByName(sym.name)) {
                  if (sym.overrides(sym2, origin, env.types, true)) {
                      return env.getMethodDoc((MethodSymbol)sym2);
                  }
              }
          }
          return null;
      }
docs: Return the method that this method overrides.
  
  @return a MethodDoc representing a method definition
  in a superclass this method overrides, null if
  this method does not override.