interface vs classe abstrata java

an abstract class can have abstract and non-abstract instance methods while an interface can have abstract or default instance methods;
an abstract class can extend another abstract or regular class and an interface can only extend another interface;
an abstract class can extend only one class while an interface can extend any number of interfaces;
an abstract class can have final, non-final, static, non-static variables (regular fields) while an interface can only have static final variables;
an abstract class can provide an implementation of an interface but an interface cannot provide an implementation of an abstract class;
an abstract class can have a constructor and an interface cannot;
in an abstract class, the keyword abstract is mandatory to declare a method as an abstract one while in an interface this keyword is optional.
coder