The abstract modifier is applicable for:

  • classes
  • methods

The abstract modifier is to extend your class or method. This is close to what an interface does, therefore the differences here. Because an interface is on a class level we only compare the abstract class. The 5 differences:

 Abstract Class can:  Interface can:
1 only extend one class extend any number of interfaces at a time
2 extend another class only extend another interface
3 have both abstract and concrete methods have only abstract methods
4 have protected and public abstract methods have only public abstract methods
5 have static, final or static final variable with any access modifiers only have public static final (constant) variable