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");
    }
}