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

Sales by Match HackerRank Solution | Java Solution

HackerRank Sales by Match problem solution in Java   Problem Description : Alex works at a clothing store. There is a large pile of socks that must be paired by color for sale. Given an array of integers representing the color of each sock, determine how many pairs of socks with matching colors there are. For example, there are n=7 socks with colors socks = [1,2,1,2,1,3,2]. There is one pair of color 1 and one of color 2 . There are three odd socks left, one of each color. The number of pairs is 2 .   Example 1 : Input : n = 6 arr = [1, 2, 3, 4, 5, 6] Output : 0 Explanation : We have 6 socks with all different colors, So print 0. Example 2 : Input : n = 10 arr = [1, 2, 3, 4, 1, 4, 2, 7, 9, 9] Output : 4 Explanation : We have 10 socks. There is pair of color 1, 2, 4 and 9, So print 4. This problem easily solved by HashMap . Store all pair of socks one by one in Map and check if any pair is present in Map or not. If pair is present then increment ans variable by 1 ...

Queen's Attack II HackerRank Solution in Java with Explanation

Queen's Attack II Problem's Solution in Java (Chessboard Problem)   Problem Description : You will be given a square chess board with one queen and a number of obstacles placed on it. Determine how many squares the queen can attack.  A queen is standing on an n * n chessboard. The chess board's rows are numbered from 1 to n, going from bottom to top. Its columns are numbered from 1 to n, going from left to right. Each square is referenced by a tuple, (r, c), describing the row r and column c, where the square is located. The queen is standing at position (r_q, c_q). In a single move, queen can attack any square in any of the eight directions The queen can move: Horizontally (left, right) Vertically (up, down) Diagonally (four directions: up-left, up-right, down-left, down-right) The queen can move any number of squares in any of these directions, but it cannot move through obstacles. Input Format : n : The size of the chessboard ( n x n ). k : The number of obstacles...