Bird
Raised Fist0
PHPprogramming~10 mins

Extending classes in PHP - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - Extending classes
Define Parent Class
↓
Define Child Class extends Parent
↓
Create Child Object
↓
Child inherits Parent methods/props
↓
Call methods on Child
↓
If method overridden, Child's version runs
↓
Program Ends
This flow shows how a child class inherits from a parent class, can override methods, and how objects use these methods.
Execution Sample
PHP
<?php
class Animal {
  public function speak() {
    echo "Animal sound\n";
  }
}

class Dog extends Animal {
  public function speak() {
    echo "Bark!\n";
  }
}

$dog = new Dog();
$dog->speak();
?>
This code defines a parent class Animal and a child class Dog that overrides the speak method. It creates a Dog object and calls speak.
Execution Table
StepActionClass/MethodOutputNotes
1Define class AnimalAnimalParent class created with speak() method
2Define class Dog extends AnimalDogChild class created, inherits Animal
3Create object $dog = new Dog()Dog::__constructDog object created
4Call $dog->speak()Dog::speakBark! Dog's speak() overrides Animal's
5Program endsExecution complete
💡 Program ends after calling Dog's speak method which outputs 'Bark!'
Variable Tracker
VariableStartAfter CreationFinal
$dogundefinedobject of Dogobject of Dog
Key Moments - 2 Insights
Why does $dog->speak() print 'Bark!' and not 'Animal sound'?
Because Dog class overrides the speak() method from Animal. See execution_table step 4 where Dog::speak runs instead of Animal::speak.
Does Dog class have access to Animal's methods if not overridden?
Yes, Dog inherits all methods from Animal. If Dog does not override a method, calling it on Dog object uses Animal's version.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the output at step 4?
AAnimal sound
BNo output
CBark!
DError
💡 Hint
Check the Output column in execution_table row with Step 4
At which step is the Dog object created?
AStep 3
BStep 2
CStep 1
DStep 4
💡 Hint
Look at the Action column for object creation in execution_table
If Dog did not override speak(), what would $dog->speak() output?
ABark!
BAnimal sound
CNo output
DError
💡 Hint
Refer to key_moments about method inheritance and overriding
Concept Snapshot
Extending classes in PHP:
class Child extends Parent {
  // Child inherits Parent's methods and properties
  // Can override methods by redefining them
}
Create child object: $obj = new Child();
Calling methods uses Child's version if overridden, else Parent's.
Full Transcript
This example shows how PHP classes can extend other classes. The parent class Animal has a method speak() that prints 'Animal sound'. The child class Dog extends Animal and overrides speak() to print 'Bark!'. When we create a Dog object and call speak(), it runs Dog's version, printing 'Bark!'. This demonstrates inheritance and method overriding in PHP classes.

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