Bird
Raised Fist0
PHPprogramming~20 mins

Method overriding in PHP - Mini Project: Build & Apply

Choose your learning style10 modes available
Method overriding
📖 Scenario: Imagine you are creating a simple system for different types of vehicles. Each vehicle can describe itself, but some vehicles have special descriptions.
🎯 Goal: You will create a base class with a method, then create a child class that overrides this method to provide a special message.
📋 What You'll Learn
Create a base class called Vehicle with a method describe() that returns the string "This is a vehicle."
Create a child class called Car that extends Vehicle.
Override the describe() method in Car to return the string "This is a car."
Create an object of Car and print the result of calling its describe() method.
💡 Why This Matters
🌍 Real World
Method overriding helps customize behavior in different types of objects, like vehicles, animals, or employees, while sharing common features.
💼 Career
Understanding method overriding is essential for object-oriented programming, which is widely used in software development jobs to build flexible and reusable code.
Progress0 / 4 steps
1
Create the base class Vehicle
Create a class called Vehicle with a public method describe() that returns the string "This is a vehicle."
PHP
Hint

Use class Vehicle {} and inside it define public function describe() that returns the string.

2
Create the child class Car
Create a class called Car that extends Vehicle.
PHP
Hint

Use class Car extends Vehicle {} to create the child class.

3
Override the describe() method in Car
Inside the Car class, override the describe() method to return the string "This is a car."
PHP
Hint

Define public function describe() inside Car and return the new string.

4
Create Car object and print description
Create an object called $myCar of class Car and print the result of calling $myCar->describe().
PHP
Hint

Create the object with new Car() and use print() to show the description.

Practice

(1/5)
1. What does method overriding allow a child class to do in PHP?
easy
A. Change the behavior of a method inherited from the parent class
B. Create a new method with a different name
C. Prevent the parent class from being instantiated
D. Automatically call all parent methods

Solution

  1. Step 1: Understand method overriding concept

    Method overriding means a child class uses the same method name as the parent to change its behavior.
  2. Step 2: Identify what overriding does

    It replaces or modifies the parent's method behavior in the child class.
  3. Final Answer:

    Change the behavior of a method inherited from the parent class -> Option A
  4. Quick Check:

    Method overriding = change parent method behavior [OK]
Hint: Overriding means same method name, new behavior [OK]
Common Mistakes:
  • Thinking overriding creates new methods with different names
  • Confusing overriding with inheritance itself
  • Believing overriding prevents parent instantiation
2. Which of the following is the correct syntax to override a method named greet in a child class in PHP?
easy
A. function greetChild() { /* new code */ }
B. function greet() { /* new code */ }
C. override function greet() { /* new code */ }
D. parent::greet() { /* new code */ }

Solution

  1. Step 1: Recall method overriding syntax

    To override, define a method with the same name in the child class.
  2. Step 2: Check options for correct syntax

    Only function greet() { /* new code */ } defines function greet() correctly without extra keywords.
  3. Final Answer:

    function greet() { /* new code */ } -> Option B
  4. Quick Check:

    Same method name in child = override [OK]
Hint: Use same method name in child class to override [OK]
Common Mistakes:
  • Adding 'override' keyword which PHP does not use
  • Changing method name to something else
  • Trying to call parent method syntax incorrectly
3. What will be the output of this PHP code?
class ParentClass {
  function sayHello() {
    echo "Hello from Parent";
  }
}
class ChildClass extends ParentClass {
  function sayHello() {
    echo "Hello from Child";
  }
}
$obj = new ChildClass();
$obj->sayHello();
medium
A. Hello from ParentChild
B. Hello from Parent
C. Hello from Child
D. Error: Method not found

Solution

  1. Step 1: Identify method overriding in ChildClass

    ChildClass defines sayHello() which overrides ParentClass method.
  2. Step 2: Check which method is called

    Creating ChildClass object calls ChildClass's sayHello(), printing "Hello from Child".
  3. Final Answer:

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

    Child method overrides parent = "Hello from Child" [OK]
Hint: Child method runs if overridden, not parent [OK]
Common Mistakes:
  • Expecting parent method output instead of child
  • Thinking both outputs print together
  • Assuming error due to method name clash
4. Find the error in this PHP code that tries to override a method:
class Base {
  function show() {
    echo "Base";
  }
}
class Derived extends Base {
  function show() {
    parent.show();
    echo " Derived";
  }
}
$obj = new Derived();
$obj->show();
medium
A. Class Derived must declare show() as public
B. Cannot override methods in PHP
C. Missing return statement in show()
D. Incorrect syntax to call parent method; should use parent::show()

Solution

  1. Step 1: Identify how parent method is called

    The code uses parent.show() which is invalid syntax in PHP.
  2. Step 2: Correct syntax for calling parent method

    PHP requires parent::show() to call the parent's method inside child.
  3. Final Answer:

    Incorrect syntax to call parent method; should use parent::show() -> Option D
  4. Quick Check:

    Call parent method with parent::method() [OK]
Hint: Use parent::method() to call parent method inside child [OK]
Common Mistakes:
  • Using dot (.) instead of :: to call parent method
  • Thinking overriding is not allowed
  • Forgetting to call parent method when needed
5. Given these classes, what will be the output?
class Animal {
  function sound() {
    echo "Some sound";
  }
}
class Dog extends Animal {
  function sound() {
    parent::sound();
    echo " and Bark";
  }
}
class Puppy extends Dog {
  function sound() {
    echo "Yip";
  }
}
$pet = new Puppy();
$pet->sound();
hard
A. Yip
B. Some sound and Bark and Yip
C. Some sound and Bark
D. Error: Cannot override multiple times

Solution

  1. Step 1: Trace method calls for Puppy object

    Puppy overrides sound() and only echoes "Yip" without calling parent.
  2. Step 2: Understand overriding chain

    Since Puppy method does not call parent::sound(), Dog and Animal methods are not executed.
  3. Final Answer:

    Yip -> Option A
  4. Quick Check:

    Child override without parent call = only child output [OK]
Hint: If child method skips parent call, only child output shows [OK]
Common Mistakes:
  • Assuming all parent methods run automatically
  • Expecting combined outputs without explicit parent calls
  • Thinking multiple overrides cause errors
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