Inheritance
| Extend a class | |
| Call the parent | |
| public protected private | |
| Abstract classes |
Extend a class
Use extends to reuse a base class in a child class. The child gains all public and protected members of the base.
Details are explained in the guide on
inheritance
with a longer Animal example.
class Animal { public function voice(): string { return "Sound"; } } class Cat extends Animal { }
Call the parent
A child may override a method and still reuse the original logic. Call parent followed by two colons and the method name.
This pattern keeps shared logic in one place while allowing small changes in children.
class Animal { public function voice(): string { return "Sound"; } } class Cat extends Animal { public function voice(): string { return parent::voice() . " Meow"; } }
public protected private
Visibility controls who can read a property or call a method. Public members are open to all code.
Protected members stay inside the family of parent and children. Private members stay inside one class only.
class Demo { public string $open = "yes"; protected string $family = "yes"; private string $secret = "yes"; }
Abstract classes
An abstract class defines a contract and shares code but cannot be created directly.
Child classes extend it and fill in each abstract method with real logic.
abstract class Shape { abstract public function area(): float; } class Square extends Shape { public function __construct(public float $side = 2.0) { } public function area(): float { return $this->side * $this->side; } }
Next: Interfaces and traits
Article author: Arthur Isaev