An interface in OOP defines a contract that classes can implement. An interface typically contains only method signatures and no implementation. Classes that implement an interface are required to provide concrete implementations for all of its methods. Interfaces are used to represent capabilities or behaviors that can be shared across unrelated classes. They promote loose coupling and enable multiple inheritance of type, allowing a class to implement multiple interfaces and thus acquire multiple sets of behaviors.

Interface vs Abstract Class