Skip to content

Inheritance

Pankaj Chouhan edited this page Sep 3, 2023 · 1 revision

Inheritance is a fundamental concept in object-oriented programming (OOP) that allows you to create new classes (subclasses) that inherit properties and behaviors from existing classes (superclasses). There are several types of inheritance in Java:

  1. Single Inheritance:

    • In single inheritance, a subclass can inherit from only one superclass.
    • Java supports single inheritance for classes, which means a class can have only one direct parent class (superclass).
    • This is the most common form of inheritance and ensures a simple and straightforward class hierarchy.
    class Animal {
        // ...
    }
    
    class Dog extends Animal {
        // ...
    }
  2. Multiple Inheritance (Not Supported in Java):

    • Multiple inheritance allows a class to inherit properties and behaviors from more than one superclass.
    • Java does not support multiple inheritance for classes due to the "diamond problem," which can result in ambiguity when resolving method calls.
    • However, Java supports multiple inheritance through interfaces, where a class can implement multiple interfaces to inherit behavior from different sources.
    interface A {
        // ...
    }
    
    interface B {
        // ...
    }
    
    class MyClass implements A, B {
        // ...
    }
  3. Multi-Level Inheritance:

    • In multi-level inheritance, a subclass inherits from another subclass, creating a chain of inheritance.
    • Each class in the chain inherits properties and behaviors from its immediate parent class.
    • This is a common form of inheritance and helps create a hierarchy of related classes.
    class Animal {
        // ...
    }
    
    class Dog extends Animal {
        // ...
    }
    
    class GermanShepherd extends Dog {
        // ...
    }
  4. Hierarchical Inheritance:

    • In hierarchical inheritance, multiple subclasses inherit from a common superclass.
    • Each subclass shares the properties and behaviors of the common superclass.
    • This allows you to create a family of related classes.
    class Animal {
        // ...
    }
    
    class Dog extends Animal {
        // ...
    }
    
    class Cat extends Animal {
        // ...
    }
  5. Hybrid Inheritance (Achieved through Interfaces):

    • Hybrid inheritance combines multiple forms of inheritance, including single inheritance, multiple inheritance (through interfaces), and hierarchical inheritance.
    • In Java, you can achieve a concept similar to hybrid inheritance by using interfaces and combining single and hierarchical inheritance with interface implementation.
    interface Swimmer {
        void swim();
    }
    
    class Animal {
        // ...
    }
    
    class Fish extends Animal implements Swimmer {
        @Override
        public void swim() {
            // ...
        }
    }
    
    class Dog extends Animal {
        // ...
    }
Clone this wiki locally