Understanding Inheritance

2 minute read

In object-oriented programming (OOP), inheritance is a powerful concept that allows classes to inherit properties and behaviors (methods) from other classes. This tutorial will provide a comprehensive explanation of inheritance along with a practical example in Java.

What is Inheritance?

Inheritance is a mechanism in OOP where a new class (subclass or derived class) is created based on an existing class (superclass or base class). The subclass inherits attributes and methods from its superclass, enabling code reuse and promoting a hierarchical relationship between classes.

Example of Inheritance

Let’s illustrate inheritance with an example of different types of vehicles. We’ll create a superclass called Vehicle with common attributes and methods, and then create subclasses representing specific types of vehicles that inherit from the Vehicle class.

Vehicle Class:

// Superclass: Vehicle
public class Vehicle {
    protected String brand;
    protected String color;

    public Vehicle(String brand, String color) {
        this.brand = brand;
        this.color = color;

    public void drive() {
        System.out.println("Driving the " + color + " " + brand);

In this Vehicle class, we have two attributes: brand and color, along with a constructor to initialize them. Additionally, there’s a drive() method to simulate driving the vehicle.

Car Class (Subclass of Vehicle):

// Subclass: Car
public class Car extends Vehicle {
    private int numOfDoors;

    public Car(String brand, String color, int numOfDoors) {
        super(brand, color);
        this.numOfDoors = numOfDoors;

    public void honk() {
        System.out.println("Honking the " + color + " " + brand + " with " + numOfDoors + " doors");

The Car class extends the Vehicle class, inheriting its attributes and methods. Additionally, it introduces a new attribute numOfDoors specific to cars, along with a honk() method to simulate honking.

Benefits of Inheritance

Code Reusability:

Inheritance promotes code reuse by allowing subclasses to inherit attributes and methods from their superclass. This eliminates the need to redefine common functionalities, leading to cleaner and more maintainable code.


Inheritance facilitates modularity by organizing classes into a hierarchical structure. Subclasses can specialize or extend the behavior of their superclass, promoting better organization and separation of concerns in the codebase.


Inheritance enables polymorphic behavior, where objects of different subclasses can be treated as objects of their superclass. This promotes flexibility and extensibility in the design of software systems.


Inheritance is a fundamental concept in OOP that facilitates code reuse, modularity, and polymorphism. By allowing subclasses to inherit attributes and methods from their superclass, inheritance promotes hierarchical relationships and enhances the flexibility and maintainability of software systems.

In our example, the Car class inherits attributes and methods from the Vehicle class, demonstrating the practical application of inheritance in Java programming.

Understanding inheritance is essential for building robust and scalable software solutions, and mastering this concept is crucial for any object-oriented programmer.