Difference between abstract class and interface

Below are the difference between abstract class and interface.

Sr No.Abstract classInterface
1Abstract class is parial implemented class because it contation parital implementation of interface method.Interface is fully unimplemented class.
2An abstract class can contain abstract and non-abstract methods.Interface can contain only abstract methods. In Java 8 Onwards, it can contatin default and static methods also.
3You can not implement multiple inheritance using abstract class.You can implement multiple inheritance using interface.
4Abstract class can contain final, non-final, static and non-static variables in class body.Interface can contain only static and final variables.
5Abstract class contain abstract keyword at the time of declaration.Interface contain interface keyword at the time of interface declaration.
6An abstract class can extend another Java class and it can implement multiple interfaces.An interface can extend another Java interface only.
7An abstract class can be extended using extends keyword.An interface class can be implemented using implements keyword.
8An abstract class can have access modifier like private, protected, etc.Members of a Java interface are public by default.
9Example:
public abstract class StudentDetails{
public abstract void feesDetail();
}
Example:
public interface School{
void feesDetail();
}