An abstract class is a class that is only partially implemented by the programmer. It may contain one or more abstract methods. An abstract method is simply a function definition that serves to tell the programmer that the method must be implemented in a child class.
Whereas an interface is similar to an abstract class so it is a fully abstract class; none of its methods are implemented and instead of a class sub-classing from it, it is said to implement that interface.