title: trying to understand implicit superinterfaces
body: <p>Sorry to bring back the <a href="https://stackoverflow.com/questions/803466/implicit-super-interface-in-java">dead</a>. But I still don't clearly understand what this section of specification states.</p>
  
  <blockquote>
    <p>If an interface has no direct superinterfaces, then the interface
    implicitly declares a public abstract member method m with signature
    s, return type r, and throws clause t corresponding to each public
    instance method m with signature s, return type r, and throws clause t
    declared in Object, unless a method with the same signature, same
    return type, and a compatible throws clause is explicitly declared by
    the interface. It is a compile-time error if the interface explicitly
    declares such a method m in the case where m is declared to be final
    in Object.</p>
  </blockquote>
  
  <p>Given</p>
  
  <pre><code>interface Testing
  {
      void test();
  }
  public class Test{
      public static void main(String[] args) {
          Testing t = new Testing(){
              @Override
              public void test(){
              }
          };
          t.test();
          t.toString();
      }
  }
  </code></pre>
  
  <p>Now as the spec states that the above will change to </p>
  
  <pre><code>    interface Testing
      {
          void test();
          String toString();
          //other non-final methods of Object
      }
      public class Test{
          public static void main(String[] args) {
              Testing t = new Testing(){
                  @Override
                  public void test(){
                  }
              };
              t.test();
              t.toString(); 
          }
      }
  </code></pre>
  
  <p>Also. please confirm if there is an hierarchy of interfaces then all of them get these abstract methods.</p>