Couldy you clarify why this works:
public abstract class AbstractClassCreationTest {
    public void hello(){
        System.out.println("I'm the abstract class' instance!");
    }
    public static void main(String[] args) {
        AbstractClassCreationTest acct = new AbstractClassCreationTest(){};
        acct.hello();
    }
}
I suppose it contradicts to the specification where we can find:
It is a compile-time error if an attempt is made to create an instance of an abstract class using a class instance creation expression (§15.9).
 
     
     
     
    