midPHP
What are interfaces and abstract classes?
Updated May 24, 2026
Short answer
Interfaces define contracts, while abstract classes provide partial implementations.
Deep explanation
Interfaces enforce consistent APIs across unrelated classes. Abstract classes allow shared logic and properties while preventing direct instantiation.
Real-world example
Payment gateways implement common interfaces for interchangeable integrations.
Common mistakes
- Using inheritance where interfaces would provide better flexibility.
Follow-up questions
- Can a class implement multiple interfaces?
- Can abstract classes contain concrete methods?