Core java tutorial for beginners
A tutorial blog which explains different core concepts related to Java along with programming examples
Subscribe to Startertutorials.com's YouTube channel for different tutorial and lecture videos.

Categories: Inheritance. No Comments on super Keyword in Java
0
(0)

In this article we will look at super keyword. The super keyword is useful only in the context of inheritance. Let’s see what are the uses of this super keyword in Java.

 

Uses of super keyword

 

Following are the uses of super keyword:

  1. To refer the immediate super class constructor
  2. To refer the immediate super class members

 

Refer super class constructor

 

The super keyword can be used to invoke the constructor of its immediate super class and pass data to it. Syntax for doing so is given below:


Subscribe to our monthly newsletter. Get notified about latest articles, offers and contests.


 

super(parameters-list);

 

When writing the above statement inside the constructor of the derived class, it must be the first line. It is a mandatory requirement.

 

For understanding how this works, let’s consider our previous example:

class Student
{
	private String name;
	private String regdNo;
	private int age;
	Student(String name, String regdNo, int age)
	{
		this.name = name;
		this.regdNo = regdNo;
		this.age = age;
	}
	public void getName()
	{
		System.out.println("Student's name is: "+name);
	}
	public void getRegdNo()
	{
		System.out.println("Student's registered number is: "+regdNo);
	}
	public void getAge()
	{
		System.out.println("Student's name is: "+age);
	}
}
class CSEStudent extends Student
{
	static final String branch = "CSE";
	CSEStudent(String name, String regdNo, int age)
	{
		super(name, regdNo, age);
	}
	public void getBranch()
	{
		System.out.println("Student's branch is: "+branch);
	}
}
public class Driver 
{
	public static void main(String[] args) 
	{
		CSEStudent s1 = new CSEStudent("Teja", "10AB001", 20);
		s1.getName();
		s1.getRegdNo();
		s1.getAge();
		s1.getBranch();
	}
}

 

In the above example you can see that the data in Student class is made private. We can still pass data from the derived class CSEStudent to its parent class Student using the super construct given below:

 

super(name, regdNo, age);

 

You can also see that the above statement is the only line inside the CSEStudent class constructor. If there were multiple lines, the above line must be the first line.

 

Refer super class members

 

Second use of super keyword (in sub class) is to access the hidden members of its immediate super class. To understand this let’s consider the following example:

class A
{
	int x;
	public void display()
	{
		System.out.println("This is display in A");
	}
}

class B extends A
{
	int x;
	public void display()
	{
		System.out.println("Value of x in A is: " + super.x);
		super.display();
		System.out.println("This is display in B");
	}
}

class Driver
{
	public static void main(String[] args)
	{
		B obj = new B();
		obj.display();
	}
}

 

In the above example we can see that we are using the super keyword in two places. First use is to display the value of variable x of the super class A using the following expression:

 

super.x

 

Second use was for calling the display() method of the super class A in the sub class B using the following construct:

 

super.display()

 

How useful was this post?

Click on a star to rate it!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Suryateja Pericherla

Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.

He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.

He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.

Note: Do you have a question on this article or have a suggestion to make this article better? You can ask or suggest us by filling in the below form. After commenting, your comment will be held for moderation and will be published in 24-48 hrs.

Leave a Reply

Your email address will not be published. Required fields are marked *