posted 23 years ago
An abstract class can provide the bodies for least some methods. That is, only some of the class methods need be abstract. The remaining can be provided in the base (abstract) class. An interface requires that all methods be specified in the derived class which implements the interface. If I have an abstract class that provides no methods of its own, then I always think about converting it to an interface.
Also, a class which extends an abstract class, cannot extend any other class. A class which implements an interface can extend any class.
If your class has methods that are best implemented in the base class, use an abstract class. If all your methods are best implemented in the derived classes, consider using an interface as it is more flexible.