0% complete

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.