| Abstract class | Interface |
| 1) An abstract class can have method body (non-abstract methods). | Interface have only abstract methods. |
| 2) An abstract class can have instance variables. | An interface cannot have instance variables. |
| 3) An abstract class can have constructor. | Interface cannot have constructor. |
| 4) An abstract class can have static methods. | Interface cannot have static methods. |
| 5) You can extends one abstract class. | You can implement multiple interfaces. |