Advertisement

Google Ad Slot: content-top

Java super() and this()

~1 min read · Java
On this page

In Java, both super() and this() are used to refer to constructors, but they have distinct purposes and rules. Let’s explore each in detail:

super():

  • Purpose: Refers to the constructor of the parent (superclass).
  • Usage:
  • To call the constructor of the parent class.
  • It is used when a subclass needs to initialize the fields of the parent class.
Example
class Animal { String name; // Parent class constructor Animal(String name) { this.name = name; System.out.println("Animal constructor called. Name: " + name); } } class Dog extends Animal { // Subclass constructor Dog(String name) { super(name); // Calls the parent class constructor System.out.println("Dog constructor called."); } } public class Main { public static void main(String[] args) { Dog dog = new Dog("Buddy"); } }
Try it yourself

this():

  • Purpose: Refers to the constructor of the current class.
  • Usage:
  • To call another constructor from the same class.
  • Helps in constructor chaining within the same class.
Example
class Person { String name; int age; // Constructor 1: Default constructor Person() { this("Unknown", 0); // Calls Constructor 2 System.out.println("Default constructor called."); } // Constructor 2: Parameterized constructor Person(String name, int age) { this.name = name; this.age = age; System.out.println("Parameterized constructor called. Name: " + name + ", Age: " + age); } } public class Main { public static void main(String[] args) { Person person = new Person(); // Calls the default constructor } }
Try it yourself