- An Interface is class that is used to define methods and properties.

- Abstract class are allowed to define data.

- One difference is that abstract class are allowed to define data on other side Interface is not allowed to define data.

- Another difference is that classes can only inherit one abstract class but can inherit multiple Interface.