anchor.diff:  
   Here are key aspects of Groovy classes, that are different from their Java counterparts:
   
  - * Public fields are turned into properties automatically, which results in less verbose code, whithout so many getter and setter methods. More on this aspect will be covered in the Section "Fields and properties".
  + * Public fields are turned into properties automatically, which results in less verbose code, without so many getter and setter methods. More on this aspect will be covered in the Section "Fields and properties".
    * Their declarations and any property or method without an access modifier are public.
    * Classes do not need to have the same name of the files where they are defined.
    * One file may contain one or more classes (but if a file contains no classes, it is considered a script).
  
positive.code: 
   * They increase encapsulation by hiding the inner class from other classes, which do not need to know about it. This also leads to cleaner packages and workspaces.
   * They provide a good organization, by grouping classes that are used by only one class.
   * They lead to more mantainable codes, since inner classes are near the classes that use them.
  
  In several cases, inner classes are implementation of interfaces whose methods are needed by the outer class. The code below illustrates this with the usage of threads, which are very common.
  
  
negative.code: 
  ==== Abstract class
  
  Abstract classes represent generic concepts, thus, they cannot be instantiated, being created to be subclassed. Their members include fields/properties and abstract or concrete methods. Abstract methods do not have implementation, and must be implemented by concrete subclasses.
  
  [source,groovy]
  ----
  