Skip to main content

Super Keyword In Java With Examples - Programming Blog

Super keyword in Java with examples
Super Keyword In Java With Examples

What is Super keyword in Java? | Super keyword with example in java

In java, Super keyword is used to refer parent class object

You are already familiar with inheritance in java. So super keyword is used when we extends any class and want to refer parent's class variable, method or constructor.

You can use super keyword with following condition :-

  1. Variables - refer parent class instant variable
  2. Methods - refer parent class methods
  3. Constructors - refer parent class constructors

 So lets discuss each of one by one with example.

1. Super keyword with parent class instant variable

You can only refer instant variable directly using super keyword in java. 

When you extends any class and want to use parent class instant variable then super keyword is used.

Syntax :-

super.parentClassInstantVariable

So lets see example for better understanding.

Example 1:- Call parent variable with super keyword

public class SuperClass {
    String instanceVariable = "Super class";
}

 

public class SubClass extends SuperClass{

    String instanceVariable = "Sub class";
    
    public void print() {
        System.out.println(instanceVariable);
        System.out.println(super.instanceVariable);
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        obj.print();
    }

}

Output :-

Sub class
Super class

You can see in above example first we print sub class instant variable and after call parent class instant variable using super keyword.


2. Super keyword with parent class method

You can refer parent class or base class method in child class using super keyword. 

When you override any method and want to call parent class method then super keyword is so useful for calling parent class method.

Lets see example so you can easily understand.

Example 2 :- Without super keyword

public class SuperClass {

    public void print() {
        System.out.println("Inside super class");
    }
}
 

public class SubClass extends SuperClass{

    public void print() {
        System.out.println("Inside sub class");
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        obj.print();
    }

}

Output :-
Inside sub class

Example 3 :- With super keyword

public class SuperClass {

    public void print() {
        System.out.println("Inside super class");
    }
}
 

public class SubClass extends SuperClass{

    public void print() {
        System.out.println("Inside sub class");
        super.print();
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        obj.print();
    }

}

Output :-
Inside sub class
Inside super class

Example 4 :- Call parameterized method with super keyword

public class SuperClass {

    public void print(String str) {
        System.out.println("Inside super class " + str);
    }
}
 

public class SubClass extends SuperClass{

    public void print(String str) {
        System.out.println("Inside sub class " + str);
        super.print(str);
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        obj.print("Method");
    }

}

Output :-
Inside sub class Method
Inside super class Method

So you can see we can call parent class method that is override by child using super keyword.

So now one question is popup in minds.

What about if method is not overriding in child class?

So we can call directly not overrided method. means if parent class have method and child class does not have same method then we can call directly in child class.

Example 5 :- Calling parent class method that is non overrided

public class SuperClass {

    public void printSuperClass() {
        System.out.println("Inside super class");
    }
    
}

public class SubClass extends SuperClass{

    public void printSubClass() {
        System.out.println("Inside sub class");
        printSuperClass();
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        obj.printSubClass();
    }

}

Output :-
Inside sub class
Inside super class

3. Super keyword with constructor

We can call parent class constructor with super keyword.

Using super keyword we can call both parameterized and non parameterized constructor.

If we create of child class then java compiler automatically call super class constructor and then child class constructor. means java compiler automatically add super keyword itself.

So lets see example of both.

Example 6 :- Super keyword with non parameterized constructor

public class SuperClass {
    
    public SuperClass() {
        System.out.println("Inside super class constructor");


    }
}

public class SubClass extends SuperClass{

    public SubClass() {
        System.out.println("Inside sub class constructor");
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
    }
}
 

Output :-
Inside super class constructor
Inside sub class constructor

You can see we does not add super keyword in sub class constructor's. but parent class constructor automatically call.

Example 7 :- Super keyword with non parameterized constructor

public class SuperClass {

    public SuperClass() {
        System.out.println("Inside super class constructor");
    }
    
    public SuperClass(String str) {
        System.out.println("Inside super class parameterized "+ str);
    }
}

public class SubClass extends SuperClass{

    public SubClass() {
        System.out.println("Inside sub class constructor");
    }
    
    public SubClass(String str) {
        super(str);
        System.out.println("Inside sub class parameterized " +str);
    }
    
    public static void main(String[] args) {
        SubClass obj = new SubClass();
        SubClass obj1 = new SubClass("Constructor");
    }
}

Output :-
Inside super class constructor
Inside sub class constructor
Inside super class parameterized Constructor
Inside sub class parameterized Constructor


Other article you may like.
Top FREE applications and Websites to learn Coding and Programming.
 
Java interview question and answers.

Comments

Popular posts from this blog

Plus Minus HackerRank Solution in Java | Programming Blog

Java Solution for HackerRank Plus Minus Problem Given an array of integers, calculate the ratios of its elements that are positive , negative , and zero . Print the decimal value of each fraction on a new line with 6 places after the decimal. Example 1 : array = [1, 1, 0, -1, -1] There are N = 5 elements, two positive, two negative and one zero. Their ratios are 2/5 = 0.400000, 2/5 = 0.400000 and 1/5 = 0.200000. Results are printed as:  0.400000 0.400000 0.200000 proportion of positive values proportion of negative values proportion of zeros Example 2 : array = [-4, 3, -9, 0, 4, 1]  There are 3 positive numbers, 2 negative numbers, and 1 zero in array. Following is answer : 3/6 = 0.500000 2/6 = 0.333333 1/6 = 0.166667 Lets see solution Solution 1 import java.io.*; import java.math.*; import java.security.*; import java.text.*; import java.util.*; import java.util.concurrent.*; import java.util.function.*; import java.util.regex.*; import java.util.stream.*; import static jav...

Flipping the Matrix HackerRank Solution in Java with Explanation

Java Solution for Flipping the Matrix | Find Highest Sum of Upper-Left Quadrant of Matrix Problem Description : Sean invented a game involving a 2n * 2n matrix where each cell of the matrix contains an integer. He can reverse any of its rows or columns any number of times. The goal of the game is to maximize the sum of the elements in the n *n submatrix located in the upper-left quadrant of the matrix. Given the initial configurations for q matrices, help Sean reverse the rows and columns of each matrix in the best possible way so that the sum of the elements in the matrix's upper-left quadrant is maximal.  Input : matrix = [[1, 2], [3, 4]] Output : 4 Input : matrix = [[112, 42, 83, 119], [56, 125, 56, 49], [15, 78, 101, 43], [62, 98, 114, 108]] Output : 119 + 114 + 56 + 125 = 414 Full Problem Description : Flipping the Matrix Problem Description   Here we can find solution using following pattern, So simply we have to find Max of same number of box like (1,1,1,1). And ...