Simply said, because it is possible that some methods are not implemented. In the case of an interface, non of the methods are implemented.
If you would be able to create an instance, and call a non-implemented method, what code should be executed? Not that of the class / interface itself, since there is no code to execute.
To Rob's point, the abstract keyword is the way the author of a class tells readers and users that it is not complete and ready to use. Kind of like "Some assembly required" on the box a toy comes in.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
"Why can't you instantiate an interface or an abstract class?"
The short answer: because that's how they are defined.
Definitions...
Instantiate - to create one instance of a class. The newly created object is a "kind of" the class.
Interface - a declaration of methods that are expected of a class. If the class declares they implement the interface, it must provide implementations for all the methods declared by the interface.
Abstract Class - a class that cannot be instantiated. Often it will include one or more methods that are also declared abstract and must be implemented by subclasses for the subclass to be concrete (opposite of abstract), and therefore able to be instantiated. Does not have to include abstract methods; the documentation may otherwise specify what is required of a valid concrete subclass.
Bill Shirley - bshirley - frazerbilt.com
if (Posts < 30) you.read( JavaRanchFAQ);
What does a metric clock look like? I bet it is nothing like this tiny ad:
a bit of art, as a gift, the permaculture playing cards