What are the Differences between Abstract Class and Interface?

Abstract Class

Quote:

1: It can have implemented Methods

2: A class can inherit only one abstract class

3: We go for Abstract classes on such situations where we need

to give common functionality for group of related classes

4: If we add a new method, then we can provide a default

implementation and so no need to make any change to existing work

5: Static and Instance constants are possible

Interface

Quote:

1: It cannot have implemented Methods.

2: A Class can implement any number of Interfaces

3: We go for Interface on such situations where we need to give

common functionality for group of un-related classes

4: If we add a new method, then we need to change all the existing work

5: Only Static constants are possible