Hierarchical Inheritance

Hierarchical inheritance in Java is a type of inheritance where multiple subclasses inherit from a single superclass. This type of inheritance allows a single class to serve as a base class for multiple derived classes, promoting code reuse and consistency across related classes.

Example of Hierarchical Inheritance in Java

Let's create an example with a superclass called Animal and three subclasses: Dog, Cat, and Bird. Each subclass will inherit from the Animal superclass and add specific behavior.
// Superclass
class Animal {
    String name;

    // Constructor
    Animal(String name) {
        this.name = name;
    }

    // Method to display the name
    void display() {
        System.out.println("Animal Name: " + name);
    }

    // Method to make a sound (to be overridden by subclasses)
    void sound() {
        System.out.println("Animal makes a sound");
    }
}

// Subclass Dog
class Dog extends Animal {

    // Constructor
    Dog(String name) {
        super(name);
    }

    // Override the sound method
    @Override
    void sound() {
        System.out.println("Dog barks");
    }
}

// Subclass Cat
class Cat extends Animal {

    // Constructor
    Cat(String name) {
        super(name);
    }

    // Override the sound method
    @Override
    void sound() {
        System.out.println("Cat meows");
    }
}

// Subclass Bird
class Bird extends Animal {

    // Constructor
    Bird(String name) {
        super(name);
    }

    // Override the sound method
    @Override
    void sound() {
        System.out.println("Bird chirps");
    }
}

// Main class to test the hierarchical inheritance
public class Main {
    public static void main(String[] args) {
        // Create instances of each subclass
        Dog dog = new Dog("Buddy");
        Cat cat = new Cat("Whiskers");
        Bird bird = new Bird("Tweety");

        // Display information and sounds for each animal
        dog.display();
        dog.sound();

        cat.display();
        cat.sound();

        bird.display();
        bird.sound();
    }
}

Program to Try

// Superclass
class Shape {
    // Method to display shape information
    void display() {
        System.out.println("This is a shape.");
    }

    // Abstract method to calculate the area (to be overridden by subclasses)
    double calculateArea() {
        return 0;
    }
}

// Subclass Rectangle
class Rectangle extends Shape {
    double length;
    double width;

    // Constructor
    Rectangle(double length, double width) {
        this.length = length;
        this.width = width;
    }

    // Override the calculateArea method
    @Override
    double calculateArea() {
        return length * width;
    }

    // Override the display method
    @Override
    void display() {
        System.out.println("This is a rectangle.");
    }
}

// Subclass Triangle
class Triangle extends Shape {
    double base;
    double height;

    // Constructor
    Triangle(double base, double height) {
        this.base = base;
        this.height = height;
    }

    // Override the calculateArea method
    @Override
    double calculateArea() {
        return 0.5 * base * height;
    }

    // Override the display method
    @Override
    void display() {
        System.out.println("This is a triangle.");
    }
}

// Subclass Circle
class Circle extends Shape {
    double radius;

    // Constructor
    Circle(double radius) {
        this.radius = radius;
    }

    // Override the calculateArea method
    @Override
    double calculateArea() {
        return Math.PI * radius * radius;
    }

    // Override the display method
    @Override
    void display() {
        System.out.println("This is a circle.");
    }
}

// Main class to test the hierarchical inheritance
public class Main {
    public static void main(String[] args) {
        // Create instances of each subclass
        Rectangle rectangle = new Rectangle(5, 3);
        Triangle triangle = new Triangle(4, 2.5);
        Circle circle = new Circle(2.5);

        // Display information and areas for each shape
        System.out.println("Rectangle:");
        rectangle.display();
        System.out.println("Area: " + rectangle.calculateArea());

        System.out.println("\nTriangle:");
        triangle.display();
        System.out.println("Area: " + triangle.calculateArea());

        System.out.println("\nCircle:");
        circle.display();
        System.out.println("Area: " + circle.calculateArea());
    }
}

Comments

Popular posts from this blog

KTU OOP LAB JAVA CSL 203 BTech CS S3 - Dr Binu V P

Syllabus and Practice Questions KTU OOPS Lab Java CSL 203

String Problems