posted 18 years ago
An interface provides a contract that all implementing classes must meet. If a class is declared to implement an interface, then it must provide an implementation for each method defined in the interface.
An abstract class is similar in that it may declare abstract methods whose implementation is defered to child class(es). An abstract class cannot be instantiated. Sometimes it is useful to use abstract classes becausem unlike interfaces, you can include method implementations for no abstract methods that will be common to all child classes (assuming you don't override them).