Doubt related to interface instantiation in Java
<p>The following program when run will product stackoverflow as output.
<br>I want to know what is happening in the line where a TestA is being instantiated. </p>

<pre><code>interface TestA { String toString(); }

class Test 
{
  public static void main(String[] args) 
  {
     // whats going on in this line ???
     System.out.println(new TestA() {public String toString() { return "stackoverflow"; } });
  }
}
</code></pre>
