Software Engineering ยท Architecture
A defined set of operations something promises to support, without specifying how those operations are implemented internally.
Mental model: Like a USB port โ any device that fits the shape and protocol works, regardless of what's inside.
Example: A PaymentProcessor interface that both StripeProcessor and PaypalProcessor implement, so checkout code doesn't care which one it's talking to.
In practice: Programming against an interface rather than a concrete class is what makes mocking, dependency injection, and swapping implementations at runtime possible.