What is the role of interfaces/abstractions in SOLID?
Answer
Interfaces and abstractions are the connective tissue that makes most SOLID principles work in practice. They appear in: OCP — you extend behavior by adding new implementations of an interface, not modifying existing classes; LSP — the interface defines the behavioral contract that all implementations must honor; ISP — well-designed interfaces are narrow and role-specific; DIP — both high-level and low-level modules depend on interfaces rather than each other. Without interfaces, OCP and DIP are nearly impossible to implement — you'd always be modifying concrete classes. Interfaces also enable polymorphism, allowing client code to work with any implementation that satisfies the contract.
Previous
How does DIP relate to dependency injection?
Next
What is a "god class" and which SOLID principle does it violate?