super Keyword Usage and Examples
Learn how to use the Java super keyword to access superclass methods, constructors, and variables. Includes beginner-friendly explanations and real-world examples.
This reference explains super Keyword Usage and Examples through its syntax, examples and boundaries. Use the linked course lessons when the surrounding Java concepts are unfamiliar.
Use this reference
Identify the documented behavior, read a complete example and check its inputs before applying it.
super Keyword in Java
In Java, the super keyword is used to refer to the immediate parent class of a subclass. It acts as a bridge to access the superclass’s variables, methods, or constructors from a subclass.
This is especially useful when the subclass overrides a method or variable, and you still want to access the original version from the parent class.
Why is super Important?
Java follows the principles of object-oriented programming. One of those principles is inheritance, where a subclass inherits features from a superclass. Sometimes, the subclass wants to:
- Call a method defined in the superclass
- Access a variable hidden by its own declaration
- Call a specific constructor of the superclass
That’s where super becomes powerful and essential.
1. Using super to Call Superclass Method
If a method in the child class overrides a method from the parent, you can still call the parent version using super.methodName().
class Animal {
void sound() {
System.out.println("Animal makes a sound");
}
}
class Dog extends Animal {
void sound() {
System.out.println("Dog barks");
}
void makeSound() {
super.sound(); // Call parent class method
sound(); // Call current class method
}
}
public class Main {
public static void main(String[] args) {
Dog dog = new Dog();
dog.makeSound();
}
}
Animal makes a sound
Dog barks
2. Using super to Access Superclass Variables
If both superclass and subclass have variables with the same name, super helps in accessing the superclass’s variable.
class Vehicle {
int speed = 60;
}
class Car extends Vehicle {
int speed = 100;
void displaySpeed() {
System.out.println("Speed of Car: " + speed);
System.out.println("Speed of Vehicle: " + super.speed);
}
}
public class Main {
public static void main(String[] args) {
Car car = new Car();
car.displaySpeed();
}
}
Speed of Car: 100
Speed of Vehicle: 60
3. Using super() to Call Superclass Constructor
When creating a subclass object, the constructor of the superclass is automatically called. But if the superclass has a parameterized constructor, you need to explicitly call it using super(arguments).
class Person {
Person(String name) {
System.out.println("Person: " + name);
}
}
class Student extends Person {
Student(String name) {
super(name); // Call the constructor of Person
System.out.println("Student: " + name);
}
}
public class Main {
public static void main(String[] args) {
Student s = new Student("Alice");
}
}
Person: Alice
Student: Alice
Things to Remember
supermust be the first statement in the subclass constructor when calling the superclass constructor.- You can’t use
superin a static context since it refers to an instance. superhelps resolve naming conflicts between parent and child class members.
Real-Life Analogy
Imagine you’re using a customized smartphone interface provided by a brand (the subclass), but sometimes you want to access the default Android settings (the superclass). The super keyword acts like a backdoor to reach those default settings, even when they’ve been overridden or hidden.
When Should You Use super ?
- When subclass methods/fields override superclass methods/fields but you still want to refer to the original version.
- When passing parameters to a constructor in the superclass.
Using this reference
Check the example’s types, inputs and documented behavior before copying it into an application. Some APIs require external libraries, files or platform services; consult their setup notes.
Related explanations: Java Data Types - Primitive and Non-Primitive, Java Class - Blueprint of Objects, Exceptions in Java Introduction.
Supporting documentation: Official Java learning guide.
Reference checks are optional and do not count toward course progress.