Inheritance lets you create new classes based on existing ones. Interfaces define contracts that classes must follow.
Inheritance
extends— A child class inherits properties and methods from a parent classparent::__construct()— Call the parent constructor- Child classes can override parent methods
Abstract Classes
A class that cannot be instantiated directly — it serves as a base class. Abstract methods must be implemented by child classes.
Interfaces
An interface defines methods that a class must implement. A class can implement multiple interfaces using implements.
Tip: Use interfaces when you need to define a contract that multiple unrelated classes must follow.