⬅ Previous Topic
Java strictfp KeywordNext Topic ⮕
Java switch Keyword⬅ Previous Topic
Java strictfp KeywordNext Topic ⮕
Java switch Keywordsuper
Keyword in JavaIn 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.
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:
That’s where super
becomes powerful and essential.
super
to Call Superclass MethodIf 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
super
to Access Superclass VariablesIf 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
super()
to Call Superclass ConstructorWhen 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
super
must be the first statement in the subclass constructor when calling the superclass constructor.super
in a static context since it refers to an instance.super
helps resolve naming conflicts between parent and child class members.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.
super
?⬅ Previous Topic
Java strictfp KeywordNext Topic ⮕
Java switch KeywordYou can support this website with a contribution of your choice.
When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.