This does not produce an error. However, if I replace 'AbstractClass abstract1[] = new AbstractClass[0] ;' with
AbstractClass abstract1 = new Abstract();
Like Jeanne says, the following statement
has not instantiated an AbstractClass type object yet. It is sometimes a commonly misunderstood thing that a
instantiates Someclass.
It does not. The statement
just declares and creates an array of type Someclass that can hold n number of Someclass objects.
instantiates a Someclass type.
You've already seen that you can't instantiate an abstract class or an interface.