
Java

In this tutorial we will learn about inheritance in Java programming language.
Inheritance is one of the core concepts of Object Oriented Programming (OOP). It allows us to create hierarchy.
Java inheritance is like real world inheritance were a child inherits properties belonging to the parent and then the child adds some extra items on top of the inherited stuff.
In Java using inheritance we create a parent class or superclass having common features and then we create child class or subclass that inherits features of the parent class.
For example, we can have a Person class having member variables and methods that are very general to any person like firstname, lastname etc.
Then we can have another class Employee that can have more specific member variables and methods like employeeid, payscale, joiningDate etc.
So, the Employee class can inherit the general variables and methods of the Person class and then add its own variables and methods to have a more specific class.
In programming terms the Person class will be called the superclass or the parent class. And the Employee class that inherits the Person class will be called the subclass or the child class.
extends keywordTo create inheritance in Java we use the extends keyword.
Syntax:
class Parent {
// some code...
}
class Child extends Parent {
// some code...
}
Where, Parent is the name of the super class or parent class and Child is the name of the sub class or the child class.
And using the extends keyword the Child class is inheriting properties from the Parent class.
Following things get inherited by the child or subclass from the parent or superclass.
public member variables of parent class.protected member variables of the parent class.public methods of the parent class.protected methods of the parent class.The private member variables and methods of the parent class is not inherited by the child class.
We use the . operator to access the inherited variables and methods.
In the following example we have the parent or superclass Person and we have the child or subclass Employee that inherits the parent class.
// the parent class
class Person {
// general member variables
String firstname;
String lastname;
}
// the child class inheriting the parent class
class Employee extends Person {
// specific member variables
String employeeid;
int payscale;
String joiningDate;
// constructor
Employee(String firstname, String lastname, String employeeid, int payscale, String joiningDate) {
this.firstname = firstname;
this.lastname = lastname;
this.employeeid = employeeid;
this.payscale = payscale;
this.joiningDate = joiningDate;
}
// show employee details
public void showDetail() {
System.out.println("Employee details:");
System.out.println("EmployeeID: " + this.employeeid);
System.out.println("First name: " + this.firstname);
System.out.println("Last name: " + this.lastname);
System.out.println("Pay scale: " + this.payscale);
System.out.println("Joining Date: " + this.joiningDate);
}
}
// the main class
public class Example {
// the main method
public static void main(String[] args) {
// employee data
String firstname = "Yusuf";
String lastname = "Shakeel";
String employeeid = "E01";
int payscale = 3;
String joiningDate = "2010-01-01";
// creating an object of the Employee class
Employee empObj = new Employee(firstname, lastname, employeeid, payscale, joiningDate);
// show detail
empObj.showDetail();
}
}
Output:
$ javac Example.java
$ java Example
Employee details:
EmployeeID: E01
First name: Yusuf
Last name: Shakeel
Pay scale: 3
Joining Date: 2010-01-01
So, when the Employee class inherits the Person class it transforms into the following.
class Employee {
// inherited variables from parent class
String firstname;
String lastname;
// variables of the Employee class
String employeeid;
int payscale;
String joiningDate;
// constructor
Employee(params_list) {
// some code...
}
// method of the Employee class
public void showDetail() {
// some code...
}
}
ADVERTISEMENT