An interface in programming is a collection of method headers and constants, requiring classes that implement it to define all specified methods. Interfaces can extend other interfaces, allowing for method inheritance. Declared constants within interfaces are implicitly public, static, and final, while methods are public and abstract by default.