In PHP, a class can extend another class, inheriting the parent class’
properties and methods. To make a class a child of another, use the extends
keyword after the class name.
<?php
class Vehicle
{
public function drive()
{
echo "driving...\n";
}
}
class Truck extends Vehicle {}
Using the drive
method on the Truck
class does not cause an error because Truck
extends Vehicle
.
$truck = new Truck();
$truck->drive();
Even though the child class inherits a parent class’ properties and methods, the child can still override the parent.
class Tractor extends Vehicle
{
public function drive()
{
echo "driving slowly...\n";
}
}
The drive function now outputs “driving slowly…” instead of “driving…”.
$tractor = new Tractor();
$tractor->drive();
A class can use a parent’s property or method from the $this
variable.
class Motorcycle extends Vehicle
{
public function pushPedal()
{
$this->drive();
}
}
The pushPedal
method outputs “driving…”.
$cycle = new Motorcycle();
$cycle->pushPedal();
If you override a parent’s property or method, the $this
variable will refer to the child’s
implementation of the property or method. To call the parent’s property or method explicity,
use the parent
keyword.
class Racecar extends Vehicle
{
public function drive()
{
parent::drive();
echo "driving even faster...\n";
}
}
The drive
method on Racecar
now outputs “driving…” and “driving even faster…”.
$racecar = new Racecar();
$racecar->drive();