RE: Why can't we create object for an abstract class?
An abstract class is a class which doesnt have an implementation for one or more methods. It means that the jvm doesnt have any direction of what to do in case if someone calls the method which is abstract. So if you are able to create an object for the abstract class and call any abstract method of it the jvm will not be able to decide what to do and hence it my be crashed. So to avoid this situation we are restricted to instantiate a abstract class. If you need a object for that abstract class create a concrete subclass and create an object for it and use it.
RE: Why can't we create object for an abstract class?
An abstract class can include concrete methods and fields. In fact an abstract class does not need to include any abstract methods. The abstract modifier simply indicates that the class cannot be instantiated.
RE: Why can't we create object for an abstract class?
We cant create an object for object class as it is supposed to be used in inheritance heirarcy. Abstract class may contain abstract methods which the inheriting class should implement. The abstract class may not contain abstract methods but is defined abstract just to prevent instantiation
RE: Why can't we create object for an abstract class?
To create objects we generally use new keyword mentioning indirectly the size to allocate the memory. We do not know the size occupied by abstact methods so we cannot create object for abstract methods.