When dealing with abstract classes in Java it is not possible to create an object of that class.
So this would not work AbstractClassName object = new AbstractClassName();.
Why this is working AbstractClassName object = new NonAbstractClassName(); ?
Can you tell me what am I doing by using a constructor from a non abstract class (that extends the abstract one) and assign the object to a abstract class type?