Object-Oriented PHP · Lesson 14 of 14
Abstract Classes
Share base behavior while requiring subclasses to implement specific operations.
Lesson
An abstract class cannot be instantiated directly. It can provide shared implementation and declare abstract methods that concrete subclasses must implement. Use an abstract base only when the shared state or behavior is real; an interface is lighter when you only need a contract.
The subclass supplies the required operation and inherits the shared method.
Further guidance
Give an object one clear responsibility and protect state that must satisfy a rule. Prefer a small public contract and composition for replaceable collaborators; use inheritance only for a genuine subtype. Test behavior through public methods instead of relying on internal implementation details.
Practice task: Create a fresh example for Abstract Classes. Predict the result before running it, then change one input and explain why the result changes. Test a normal case and one boundary or invalid case where it applies. Compare your output with the example and note one rule you would use in a real project.
Code examples
Abstract Classes
PHP
abstract class Shape
{
abstract public function area(): float;
}
class Square extends Shape
{
public function __construct(private float $side) {}
public function area(): float { return $this->side ** 2; }
}
echo (new Square(4))->area();
Expected output
16
Key points
- Share base behavior while requiring subclasses to implement specific operations.
- Protect object invariants behind a small public API.
- Prefer composition unless inheritance expresses a genuine subtype.
Your learning progress
Finish this lesson
Optional practice
PHP playground
This site does not execute learner-provided PHP code. Connect a secured PHP sandbox service before enabling code execution.
Execution is disabled. No code is sent to a server.