An interface declares method signatures without implementations, and classes agree to fulfil that contract using the implements keyword. A class can implement multiple interfaces, unlike single class inheritance.
Interfaces enable polymorphism: code can depend on an interface type rather than a concrete class, easing testing and substitution.