Java Inheritance
Java Inheritance is a fundamental concept in object-oriented programming that allows a new class to inherit properties and behaviors (fields and methods) from an existing class. This promotes code reusability and establishes a hierarchical relationship between classes.
Key Concepts
Superclass (Parent Class): The class whose properties and methods are inherited.
Subclass (Child Class): The class that inherits from the superclass.
Usage:
Inheritance is used to create a new class that is a type of an existing class. It helps in extending the functionality of a class without modifying it, thereby adhering to the Open/Closed Principle of software design.
Types of Inheritance:
public class Sivaji {
public void acting() {
System.out.println("Acting in Movies");
}
private void agri() {
System.out.println("Farmers");
}
public void produce() {
System.out.println("Producer");
}
}
public class Prabhu extends Sivaji {
public static void main(String[] args) {
Prabhu prabhu = new Prabhu();
prabhu.acting();
}
//Overridden Method
public void acting() {
System.out.println("Acting in Movies, Ads");
}
}
public class VikramPrabhu extends Prabhu {
public static void main(String[] args) {
VikramPrabhu vikramPrabhu = new VikramPrabhu();
vikramPrabhu.acting();
vikramPrabhu.produce();
}
public void acting() {
System.out.println("Movies, Ads, Web Series");
}
}
public class AishwaryaPrabhu extends Prabhu {
public static void main(String[] args) {
AishwaryaPrabhu ap = new AishwaryaPrabhu();
ap.acting();
}
}
extends - key word helps us to Inherit the properties.
Types of Inheritances
1). Single inheritance:
Sivaji -> Prabhu
2). Multi-Level Inheritance:
Sivaji -> Prabhu -> VikramPrabhu (or)
Sivaji -> Prabhu -> AishwaryaPrabhu
3). Hierarchical Inheritance: one parent with more than one child class
Prabhu -> VikramPrabhu
-> AishwaryaPrabhu
4). Hybrid Inheritance: Combining more than one type of Inheritance.
[Single + Hierarchical]
[Multilevel + Hierarchical]
5). Java is not supporting Multiple Inheritance, directly.