Below are Various types of inheritance in Java. We will see each one of them one by one with the help of examples and flow diagrams.
1) Single Inheritance
Single inheritance is damn easy to understand. When a class extends another one class only then we call it a single inheritance. The below flow diagram shows that class B extends only one class which is A. Here A is a parent class of B and B would be a child class of A.
Single Inheritance example program in Java
Class A { public void methodA() { System.out.println("Base class method"); } } Class B extends A { public void methodB() { System.out.println("Child class method"); } public static void main(String args[]) { B obj = new B(); obj.methodA(); //calling super class method obj.methodB(); //calling local method } }
2) Multiple Inheritance
“Multiple Inheritance” refers to the concept of one class extending (Or inherits) more than one base class. The inheritance we learnt earlier had the concept of one base class or parent. The problem with “multiple inheritance” is that the derived class will have to manage the dependency on two base classes.
Note 1: Multiple Inheritance is very rarely used in software projects. Using Multiple inheritance often leads to problems in the hierarchy. This results in unwanted complexity when further extending the class.
Note 2: Most of the new OO languages like Small Talk, Java, C# do not support Multiple inheritance. Multiple Inheritance is supported in C++.
3) Multilevel Inheritance
Multilevel inheritance refers to a mechanism in OO technology where one can inherit from a derived class, thereby making this derived class the base class for the new class. As you can see in below flow diagram C is subclass or child class of B and B is a child class of A. For more details and example refer – Multilevel inheritance in Java.
Multilevel Inheritance example program in Java
Class X { public void methodX() { System.out.println("Class X method"); } } Class Y extends X { public void methodY() { System.out.println("class Y method"); } } Class Z extends Y { public void methodZ() { System.out.println("class Z method"); } public static void main(String args[]) { Z obj = new Z(); obj.methodX(); //calling grand parent class method obj.methodY(); //calling parent class method obj.methodZ(); //calling local method } }
4) Hierarchical Inheritance
In such kind of inheritance one class is inherited by many sub classes. In below example class B,C and D inherits the same class A. A is parent class (or base class) of B,C & D. Read More at – Hierarchical Inheritance in java with example program.
5) Hybrid Inheritance
In simple terms you can say that Hybrid inheritance is a combination of Single and Multiple inheritance. A typical flow diagram would look like below. A hybrid inheritance can be achieved in the java in a same way as multiple inheritance can be!! Using interfaces. yes you heard it right. By using interfaces you can have multiple as well as hybrid inheritance in Java.
Read the full article here – hybrid inheritance in java with example program.
sami says
it is one of the most beautiful notes. i easily understand. Thanks for this……
yuvraj patil says
explain the Hybrid Inheritance with example in details ?
thnx
Kultaran singh says
good example in easy way
joshy says
i did’t understand multiple inheritence in java concept …
plz give me brief information of multiple inheritance in java……
Chaitanya Singh says
Refer this article: https://beginnersbook.com/2013/05/java-multiple-inheritance/
nishant khari says
multiple-inheritance supported in java through interface ,so go through interface topic.
mani says
java does not support multiple inheritence
aslamraza says
please list out the programming languages that support different inheritances
thank you !!!!!!!!!!!!!!!
sanjay thakor says
good material for easy self learning
yogini says
finally what is the answer? does java supports multiple inheritance?????????????????????? because i cant understand ..on the top its written that java does support but on the otherhand it says that it doesnt.
Shubham Sikarwar says
Java does not support Multiple inheritance or Hybrid inheritance directly!!!!
BUT……it can be implemented using Interfaces as described above in the article!!!(Jugaad)!!
Mark says
There is no multiple inheritance in java, even with interface. we are indirectly just achieving it because in interface we are just extending only the empty methods, not the body.
Tushar Jadhav says
java does not support Multiple Inheritance
Lenin says
I need the multiple, hybrid, hierarchical inheritance example programs….
Chaitanya Singh says
Hey Lenin, Please refer the links provided in the post for the examples of each type of inheritance.
Brian says
You DO NOT inherit from interfaces!! Nothing is defined in an interface therefore you have nothing to inherit. You IMPLEMENT an interface, and yes you can implement multiple interfaces in Java. Java DOES NOT allow for multiple inheritance or hybrid inheritance (diamond inheritance).
Arti Priya says
ONE OF THE BEST SITE,
KEEP IT UP GUYS!!
gayathri says
I need hierarchical example program
Sabina says
Amazing notes!Thank you! Simple and easy to understand with examples :)
Jay says
Nice and helpful brief explanation, even for beginner or for some one who just wants to brush up the knowledge.