In Java, there are different types of inheritance combined with one another. There are multiple inheritance types visible in this type of inheritance. Hybrid inheritance, for instance, is the term used to describe inheritance where two classes, A and
B, extend class C while a third class, D, extends class A.
In simple word we can say that hybrid inheritance is nothing but combination of two
more inheritance.
Hybrid (mixture) generally refers to something that is made up of multiple elements. In Java, a hybrid inheritance is created by combining two or more different inheritance types. Utilizing hybrid inheritance primarily serves to modularize the code into clear classes. It also offers the ability to reuse code.
The hybrid inheritance is made up of both single and multiple inheritance.
// Java program with single inheritance and Multiple Inheritance
import java.util.*; class Shape{ void Draw(){ System.out.println("Drawing..."); } } interface Circle{ public void CircleDraw(); } interface SemiCircle{ public void SemiCircleDraw(); } class Test extends Shape implements SemiCircle,Circle { @Override public void CircleDraw() { System.out.println("Circle Drawing...."); } @Override public void SemiCircleDraw() { System.out.println("Semi Circle Drawing...."); } public void displayTest() { System.out.println("Method defined inside Test class...."); } } class Inheritance{ public static void main(String args[]){ Test test=new Test(); System.out.println("Hybrid Inheritance Implemented!"); test.Draw(); test.CircleDraw(); test.SemiCircleDraw(); test.displayTest(); } }
Output:
Hybrid Inheritance Implemented!
Drawing...
Circle Drawing....
Semi Circle Drawing....
Method defined inside Test class....
// Java program with Hierarchical and Single Inheritance
class Shape{ void Draw(){ System.out.println("Drawing..."); } } class Circle extends Shape{ void CircleDraw(){ System.out.println("Circle Drawing...."); } } class Rectangle extends Shape{ void RectangleDraw(){ System.out.println("Rectangle Drawing...."); } } class Test extends Circle { public void displayTest(){ System.out.println("Method defined inside Test class...."); } } class Inheritance{ public static void main(String args[]){ Test test=new Test(); System.out.println("Hybrid Inheritance Implemented Using Hierarchical and Single Inheritance"); test.Draw(); test.CircleDraw(); // test.RectangleDraw() // C.T Error test.displayTest(); } }
Output:
Hybrid Inheritance Implemented Using Hierarchical and Single Inheritance
Drawing...
Circle Drawing....
Method defined inside Test class....
// Java program using Multilevel and Hierarchical Inheritance
class GrandFather{ //parent class public void DisplayGrandpa(){ System.out.println("He is grandfather."); } } class Father extends GrandFather { public void DisplayFather(){ System.out.println("He is father."); } } class Son extends Father{ public void DisplaySon(){ System.out.println("He is son."); } } public class Daughter extends Father{ public void DisplayDaughter(){ System.out.println("She is daughter."); } } class Inheritance{ public static void main(String args[]) { Son son = new Son(); son.DisplayGrandpa(); son.DisplayFather(); son.DisplaySon(); Daughter daughter = new Daughter(); daughter.DisplayGrandpa(); daughter.DisplayFather(); daughter.DisplayDaughter(); } }
Output:
He is grandfather.
He is father.
He is son.
He is grandfather.
He is father.
She is daughter.
// Java program using Multiple and Multilevel Inheritance
import java.util.*; class Shape{ void Draw(){ System.out.println("Drawing..."); } } class Circle extends Shape{ void CircleDraw(){ System.out.println("Circle Drawing...."); } } class SemiCircle extends Circle{ void SemiCircleDraw(){ System.out.println("Semicircle Drawing...."); } } interface ShapeDraw{ public void Draw(); } interface DrawCircle extends ShapeDraw{ public void CircleDraw(); } interface DrawSemiCircle extends DrawCircle,ShapeDraw{ public void SemiCircleDraw(); } class Test implements DrawSemiCircle{ public void CircleDraw() { System.out.println("Circle Drawing...."); } public void Draw() { System.out.println("Drawing...."); } public void SemiCircleDraw() { System.out.println("Semi Circle Drawing...."); } } class Inheritance{ public static void main(String args[]){ Test test=new Test(); System.out.println("Hybrid Inheritance Implemented!"); test.Draw(); test.CircleDraw(); test.SemiCircleDraw(); SemiCircle semiCircle=new SemiCircle(); semiCircle.Draw(); semiCircle.CircleDraw(); semiCircle.SemiCircleDraw(); } }
Output:
Hybrid Inheritance Implemented!
Drawing...
Circle Drawing....
Semicircle Drawing....
Drawing...
Circle Drawing....
Semicircle Drawing....
Post your comment