1. An abstract class is a class that is only partially implemented. It may contain none or multiple abstract methods. An abstract method is simply a function definition that must be implemented in a child class.
2. An interface is a fully abstract class; none of its methods are implemented.
3. Variables declared in a Java interface is by default final. An abstract class may contain non-final variables.
4. An abstract class can have a constructor.
5. Members of a Java interface are public by default. A Java abstract class can have the usual flavors of class members like private, protected, etc..
6. A Java class can implement multiple interfaces but it can extend only one abstract class.