Inheritance is a critical component of OOP (Object-Oriented Programming). It is the mechanism in Java that allows one class to inherit the characteristics (fields and methods) of another class. In Java, inheritance refers to the process of developing new classes from existing ones. A class can use the fields and methods of another class from which it has inherited.. You can also add additional fields and methods to your current class.
Syntax
class Subclass-name extends Superclass-name
statements;
}
Subclasses inherit the characteristics of a single superclass under single inheritance.
// Java program with single inheritance
class Shape{ void Draw(){ System.out.println("Drawing..."); } } class Circle extends Shape{ void CircleDraw(){ System.out.println("Circle Drawing...."); } } class Inheritance{ public static void main(String args[]){ Circle Circle=new Circle(); Circle.Draw(); Circle.CircleDraw(); } }
Output:
Drawing...
Circle Drawing....
A derived class will inherit a base class in multilevel inheritance, and in addition, the derived class will serve as the base class for other classes.
// Java program with Multilevel inheritance
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...."); } } class Inheritance{ public static void main(String args[]){ SemiCircle semiCircle=new SemiCircle(); semiCircle.Draw(); semiCircle.CircleDraw(); semiCircle.SemiCircleDraw(); } }
Output:
Drawing...
Circle Drawing....
Semicircle Drawing....
One class acts as the superclass (base class) for multiple subclasses in hierarchical inheritance.
// Java program using hierarchical Inheritance
class Shape{ void Draw(){ System.out.println("Drawing..."); } } class Circle extends Shape{ void CircleDraw(){ System.out.println("Circle Drawing...."); } } class SemiCircle extends Shape{ void SemiCircleDraw(){ System.out.println("Semicircle Drawing...."); } } class Inheritance{ public static void main(String args[]){ SemiCircle semiCircle=new SemiCircle(); semiCircle.Draw(); // semiCircle.CircleDraw(); //Compile Time Error semiCircle.SemiCircleDraw(); } }
Output:
Drawing...
Semicircle Drawing....
A class can have more than one superclass and receive features from all of its parent classes when there are multiple inheritances. Please be aware that multiple inheritances with classes are not supported by Java. Only by using interfaces in Java is multiple inheritance possible.
// Java program Multiple Inheritance using Interfaces
import java.util.*; interface Shape{ public void Draw(); } interface Circle extends Shape{ public void CircleDraw(); } interface SemiCircle extends Circle, Shape{ public void SemiCircleDraw(); } class Test implements SemiCircle { @Override public void CircleDraw() { System.out.println("Circle Drawing...."); } @Override public void Draw() { System.out.println("Drawing...."); } @Override public void SemiCircleDraw() { System.out.println("Semi Circle Drawing...."); } } class Inheritance{ public static void main(String args[]){ Test test=new Test(); test.Draw(); test.CircleDraw(); test.SemiCircleDraw(); } }
Output:
Drawing...
Circle Drawing....
Semicircle Drawing....
It combines two or more of the already defined inheritance patterns. Hybrid inheritance is not possible with classes because Java does not support multiple inheritances. Only by using interfaces in Java is hybrid inheritance possible.
Post your comment