Hybrid Inheritance in Java

Hybrid Inheritance in Java

18 Apr 2024
Beginner
406 Views
9 min read
Learn via Video Course & by Doing Hands-on Labs

Java Programming For Beginners Free Course

Inheritance: An Overview

Inheritance is one of the most powerful Object-Oriented Programming concepts in Java till now. In which a class can inherit attributes and behaviors from superclasses. This allows systematic designing and structuring of classes, enabling access to properties of different methods or classes. But In this Java Tutorial, we will explore more about Hybrid Inheritance , which will include What is Hybrid Inheritance in Java? and Why Use Hybrid Inheritance? We will also explore Hybrid inheritance in Java with examples. So, Let's first discuss a little bit about "What is Hybrid Inheritance ?".

What is Hybrid Inheritance in Java?

  • Hybrid Inheritance in Java is a combination of all inheritances.
  • Single and hierarchical inheritances or multiple inheritance.
  • For example, if we have a class Son and a class Daughter that extends the class Mother, and then there is another class Grandmother that extends the class, Mother, then this type of Inheritance is known as Hybrid Inheritance.
  • Why? We observe two kinds of inheritance here- Hierarchical and Single Inheritance.
  • In short, A hybrid inheritance combines more than two inheritance types, such as multiple and single.

Example of Hybrid Inheritance

Let's see how hybrid inheritance works in Java. Here we will take a real-world example and see the actual implementation of hybrid inheritance.

Using Single and Multiple Inheritance in Hybrid inheritance

In the following Diagram, we have implemented hybrid inheritance by a mixture of single and multiple inheritance using interfaces. We have taken the example of the Parents. The parents may be either Mother or Father. So, Mother and Father are the two interfaces of the Parents class. Both the class inherits the functionalities of the Parents class that represent the single Inheritance. Suppose a Mother and Father may have a child. So, the Child class also inherits the functionalities of the Mother and Father interfaces. It represents the multiple inheritance.
Using Single and Multiple Inheritance in Hybrid inheritance

Example:

Let's elaborate on this in Java Compiler:
class Parents  
{  
public void displayParents()  
{  
System.out.println("Two Parents");  
}  
}  
interface Mother  
{  
public void show();  
}  
interface Father  
{  
public void show();  
}   
public class Child extends Parents implements Mother, Father  
{  
public void show()  
{  
System.out.println("Mother and Father are parents ");  
}    
public void displayChild()  
{  
System.out.println("Mother and Father have one child");  
}   
public static void main(String args[])  
{  
Child obj = new Child();  
System.out.println("Implementation of Hybrid Inheritance in Java");  
obj.show();  
obj.displayChild();  
}  
}      
Output:
Implementation of Hybrid Inheritance in Java
Mother and Father are parents 
Mother and Father have one child

Using Single and Hierarchical Inheritance in hybrid inheritance

In the following figure, the GrandMother is a superclass. The Mother class inherits the properties of the GrandMother class. Since Mother and GrandMother represent a single inheritance. Further, the Mother class is inherited by the Son and Daughter class. Thus, the Mother becomes the parent class for Son and Daughter. These classes represent the hierarchical inheritance. Combinedly, it denotes the hybrid inheritance.

Using Single and Hierarchical Inheritance in hybrid inheritance

Let's Elaborate this in Java Compiler:

class GrandMother    
{    
public void showG()    
{    
System.out.println("She is grandmother.");    
}    
}    
class Mother extends GrandMother    
{    
public void showM()    
{    
System.out.println("She is mother.");    
}    
}    
class Daughter extends Mother    
{    
public void showD()    
{    
System.out.println("She is daughter.");    
}    
}     
public class Son extends Mother    
{    
public void showS()    
{    
System.out.println("He is Son.");    
}    
public static void main(String args[])    
{     
Daughter obj = new Daughter();  
obj.showD();
obj.showM();  
obj.showG();  
Son obj2 = new Son();  
obj2.showS();  
obj2.showM();    
obj2.showG();   
}    
}      

Output:

She is daughter.
She is mother.
She is grandmother.
He is Son.
She is mother.
She is grandmother.    

Benefits of Hybrid Inheritance in Java

  • The use of hybrid inheritance plays an important role and Code Reusability is one of Use of it.
  • It provides a more flexible way to design and structure classes in Java programs.
  • We can create a hierarchy of classes while also incorporating functionality from multiple interfaces and this allows for adaptable and extensible design.
  • It also allows polymorphism to us. In this Objects of child classes can be treated as instances of their parent class or interface, allowing flexible code.

Which Inheritance Is Not Supported in Java?

  • The Multiple inheritances using classes are not supported.
  • Java only allows for single inheritance, where a class can inherit from only one superclass to avoid the more complexities that arise from multiple inheritances.
  • There are very few situations where multiple inheritances are truly needed.
  • So it is recommended to avoid keeping the codebase simple and manageable.
  • One of the problems with multiple inheritances is the Diamond problem.

Disadvantages of Hybrid Inheritance.

  • It can lead to complex design hierarchies sometimes, It makes the code harder to understand and maintain by beginner users.
  • As the number of classes and interfaces involved increases, the readability of the code may challenge for developers.
  • In hybrid inheritance, there can be happen diamond problem because multiple inheritance can be included in it.
  • Hybrid inheritance can be more time-consuming compared to simpler inheritance models.
Conclusion
In this article, we discussed Hybrid Inheritance in Java in detail. We learned that we can mix any type of inheritance in a hybrid type. This makes it easier to function. We explored all concepts related to hybrid inheritance with its real-time example. I would like to listen to your feedback on this. Also, consider our Java Programming Course to become a master in Java.

FAQs

Q1. What is the hybrid inheritance in Java?

Hybrid Inheritance in Java is a type of inheritance where we can create a class that extends two or more classes

Q2. What are the benefits of hybrid inheritance?

It has several benefits it is used to increase software components' reusability, It also enables faster code development by applying existing code to new circumstances, and last, it reduces coding errors by preventing duplication of code.

Q3. What is hybrid inheritance give an example.

one derived class can inherit properties of the base class in different paths.

Q4. Why is there no hybrid inheritance in Java?

Because It can lead to confusion and ambiguity in the code.
Share Article
Live Training Batches Schedule
About Author
Shailendra Chauhan (Microsoft MVP, Founder & CEO at Scholarhat by DotNetTricks)

Shailendra Chauhan is the Founder and CEO at ScholarHat by DotNetTricks which is a brand when it comes to e-Learning. He provides training and consultation over an array of technologies like Cloud, .NET, Angular, React, Node, Microservices, Containers and Mobile Apps development. He has been awarded Microsoft MVP 8th time in a row (2016-2023). He has changed many lives with his writings and unique training programs. He has a number of most sought-after books to his name which has helped job aspirants in cracking tough interviews with ease.
Self-paced Membership
  • 22+ Video Courses
  • 750+ Hands-On Labs
  • 300+ Quick Notes
  • 55+ Skill Tests
  • 45+ Interview Q&A Courses
  • 10+ Real-world Projects
  • Career Coaching Sessions
  • Email Support
Upto 60% OFF
Know More
Accept cookies & close this