1) Abstract class can have abstract and non-abstract methods while interface can have only abstract methods.
2) Abstract class doesn't support multiple inheritance while Interface supports multiple inheritance.
3) Abstract class can provide the implementation of interface while Interface can't provide the implementation of abstract class.
4) The abstract keyword is used to declare abstract class while the interface keyword is used to declare interface.