Bird
Raised Fist0
PHPprogramming~3 mins

Why Extending classes in PHP? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could write code once and reuse it everywhere without copying?

The Scenario

Imagine you are building a program to manage different types of vehicles. You write separate code for cars, trucks, and motorcycles, repeating similar features like starting the engine or honking the horn in each place.

The Problem

Writing the same code again and again wastes time and makes mistakes easy. If you want to change how starting the engine works, you must find and update every copy. This is slow and confusing.

The Solution

Extending classes lets you write common features once in a base class, then create new classes that reuse and add to those features. This saves time and keeps your code clean and easy to fix.

Before vs After
✗ Before
<?php
class Car {
  function start() { echo "Engine starts"; }
}
class Truck {
  function start() { echo "Engine starts"; }
}
?>
✓ After
<?php
class Vehicle {
  function start() { echo "Engine starts"; }
}
class Car extends Vehicle {}
class Truck extends Vehicle {}
?>
What It Enables

You can build complex programs faster by sharing common code and customizing only what is different.

Real Life Example

Think of a video game where many characters share basic moves like walking and jumping, but each has special powers. Extending classes helps organize these shared and unique abilities easily.

Key Takeaways

Extending classes avoids repeating code.

It makes programs easier to update and understand.

You can create new things by building on existing ones.

Practice

(1/5)
1. What keyword is used in PHP to create a child class that inherits from a parent class?
easy
A. extends
B. inherits
C. implements
D. uses

Solution

  1. Step 1: Understand class inheritance in PHP

    PHP uses a specific keyword to let one class inherit properties and methods from another.
  2. Step 2: Identify the correct keyword

    The keyword to extend a class in PHP is extends, not inherits, implements, or uses.
  3. Final Answer:

    extends -> Option A
  4. Quick Check:

    Keyword for inheritance = extends [OK]
Hint: Remember: PHP uses 'extends' to inherit classes [OK]
Common Mistakes:
  • Using 'inherits' instead of 'extends'
  • Confusing 'implements' with 'extends'
  • Using 'uses' keyword incorrectly
2. Which of the following is the correct syntax to extend a class named Animal in PHP?
easy
A. class Dog extends Animal {}
B. class Dog inherits Animal {}
C. class Dog implements Animal {}
D. class Dog use Animal {}

Solution

  1. Step 1: Recall PHP class extension syntax

    To create a child class, PHP uses the syntax: class Child extends Parent {}.
  2. Step 2: Match the syntax with options

    class Dog extends Animal {} matches the correct syntax. The other options use incorrect keywords.
  3. Final Answer:

    class Dog extends Animal {} -> Option A
  4. Quick Check:

    Correct syntax uses 'extends' keyword [OK]
Hint: Use 'extends' keyword exactly after class name [OK]
Common Mistakes:
  • Using 'inherits' instead of 'extends'
  • Confusing 'implements' with 'extends'
  • Using 'use' keyword for inheritance
3. What will be the output of the following PHP code?
class ParentClass {
    public function greet() {
        return "Hello from Parent";
    }
}

class ChildClass extends ParentClass {
    public function greet() {
        return "Hello from Child";
    }
}

$object = new ChildClass();
echo $object->greet();
medium
A. Hello from Parent
B. Fatal error
C. Hello from Child
D. No output

Solution

  1. Step 1: Understand method overriding in child class

    The child class ChildClass overrides the greet() method of the parent class.
  2. Step 2: Determine which method is called

    When calling greet() on an instance of ChildClass, the overridden method in the child class runs.
  3. Final Answer:

    Hello from Child -> Option C
  4. Quick Check:

    Child method overrides parent method [OK]
Hint: Child method overrides parent method with same name [OK]
Common Mistakes:
  • Assuming parent method runs instead of child
  • Expecting syntax error due to override
  • Thinking no output will be printed
4. Identify the error in this PHP code that tries to extend a class:
class Vehicle {
    public function start() {
        return "Starting vehicle";
    }
}

class Car Vehicle {
    public function start() {
        return "Starting car";
    }
}
medium
A. Class Car should not have methods
B. Method start() cannot be overridden
C. Class Vehicle should be abstract
D. Missing 'extends' keyword before Vehicle

Solution

  1. Step 1: Check class extension syntax

    In PHP, to extend a class, the child class must use the extends keyword.
  2. Step 2: Identify the missing keyword

    The code class Car Vehicle {} misses extends between Car and Vehicle.
  3. Final Answer:

    Missing 'extends' keyword before Vehicle -> Option D
  4. Quick Check:

    Extending requires 'extends' keyword [OK]
Hint: Always write 'extends' when inheriting a class [OK]
Common Mistakes:
  • Omitting 'extends' keyword
  • Thinking methods cannot be overridden
  • Confusing abstract class requirement
5. Given the following classes, what will be the output?
class Base {
    public function message() {
        return "Base message";
    }
}

class Derived extends Base {
    public function message() {
        return parent::message() . " and Derived message";
    }
}

class MoreDerived extends Derived {
    public function message() {
        return parent::message() . " plus MoreDerived message";
    }
}

$obj = new MoreDerived();
echo $obj->message();
hard
A. MoreDerived message
B. Base message and Derived message plus MoreDerived message
C. Base message
D. Fatal error due to parent call

Solution

  1. Step 1: Trace method calls through inheritance chain

    MoreDerived::message() calls parent::message(), which is Derived::message().
  2. Step 2: Understand Derived::message() call

    Derived::message() calls parent::message(), which is Base::message(), returning "Base message".
  3. Step 3: Combine returned strings

    Base returns "Base message"; Derived appends " and Derived message"; MoreDerived appends " plus MoreDerived message".
  4. Final Answer:

    Base message and Derived message plus MoreDerived message -> Option B
  5. Quick Check:

    parent:: calls chain methods up inheritance [OK]
Hint: parent:: calls chain up inheritance to combine outputs [OK]
Common Mistakes:
  • Ignoring parent:: calls and output only last method
  • Expecting fatal error from parent calls
  • Thinking only base method runs
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard