Interfaces let you get by the multiple inheritance problem by forcing you to implement all of its methods in a class that implements it. Abstract classes can have defined methods and fields that aren't necessarily public, static, and final.
Hi Nikos Abstract class can have abstract methods as well as concrete methods whereas an interface will have only abstract methods.In one way we can call an interface as a pure abstract class. We can create constructors for abstract classes whereas that is not possible for an interface.
Nope, it's pretty much the definition of "abstract class" that you can't instantiate one. Somebody has to extend it into a concrete class that you can instantiate. Often an abstract class is "incomplete" ... you see this in methods marked "abstract" that somebody must implement to make a concrete class.
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