OOPs4Humans

Inheritance

Don't reinvent the wheel. Inherit it.

Inheritance

Analogy: biology

Inheritance is like DNA. You inherit features (eyes, hair color) from your parents, but you also add your own unique traits.

In code, a Child Class gets all the code from a Parent Class for free!

The Robot Factory

Why build a robot from scratch every time?

  • Start with a Basic Robot (Head, Body, Legs).
  • Create a Warrior Robot that extends Basic Robot and adds a Weapon.
  • Create a Flying Robot that extends Basic Robot and adds Wings.

Robot Builder (Inheritance)

Select Class

Inheritance Logic:

The Parent Class. Has basic movement and sensors.

The Code

Java Example
Switch language in Navbar
// The Parent Class
class BasicRobot {
    void walk() {
        System.out.println("Walking...");
    }
}

// The Child Class
class WarriorRobot extends BasicRobot {
    void attack() {
        System.out.println("Attacking with Laser!");
    }
}

When you create a WarriorRobot, it can walk() AND attack()!

Advanced Concepts

1. The Diamond Problem

Imagine a child inherits from two parents who both have a method called cook().

  • Parent A cooks Pasta.
  • Parent B cooks Pizza.
  • Child: "Which cook() do I use?!"

This ambiguity is the Diamond Problem. Many languages (like Java) avoid this by disallowing Multiple Inheritance of classes. C++ allows it but requires careful handling.

2. Constructor Chaining

When you create a Child object, the Parent must be born first!

  • Child Constructor calls super() (Parent Constructor).
  • This chain goes all the way up to the root ancestor.
Java Example
Switch language in Navbar
class Child extends Parent {
    Child() {
        super(); // Call Parent's constructor first!
        System.out.println("Child Created");
    }
}