Simple. I think Interfaces and Abstract classes are for the same purpose. The difference is If you extend andan Abstract Class, you could not extend no other class in Java. Reason: Java does not support Multiple Inheritance. At the same time, You can implement any number of Interface for a class.