Java Super Keyword (With Examples)
Java Super Keyword (With Examples)
com
Java super
In this tutorial, we will learn about the super keyword in Java with the help of
examples.
Before we learn about the super keyword, make sure to know about Java
inheritance (/java-programming/inheritance).
class Animal {
// overridden method
public void display(){
System.out.println("I am an animal");
}
}
// overriding method
@Override
public void display(){
System.out.println("I am a dog");
}
class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.printMessage();
}
}
Output
Thank you for printing our content at www.domain-name.com. Please check back soon for new contents. www.domain-name.com
I am a dog
In this example, by making an object dog1 of Dog class, we can call its method
printMessage() which then executes the display() statement.
Since display() is defined in both the classes, the method of subclass Dog
class Animal {
// overridden method
public void display(){
System.out.println("I am an animal");
}
}
// overriding method
@Override
public void display(){
System.out.println("I am a dog");
}
class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.printMessage();
}
}
Output
Thank you for printing our content at www.domain-name.com. Please check back soon for new contents. www.domain-name.com
I am a dog
I am an animal
class Animal {
protected String type="animal";
}
class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.printType();
}
}
I am a mammal
I am an animal
In this example, we have defined the same instance field type in both the
superclass Animal and the subclass Dog .
We then created an object dog1 of the Dog class. Then, the printType()
To explicitly call the superclass constructor from the subclass constructor, we use
super() . It's a special form of the super keyword.
super() can be used only inside the subclass constructor and must be the first
statement.
System.out.println("I am a dog");
}
}
class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
}
}
Output
I am an animal
I am a dog
Here, when an object dog1 of Dog class is created, it automatically calls the
default or no-arg constructor of that class.
Inside the subclass constructor, the super() statement calls the constructor of
Thank you for printing our content at www.domain-name.com. Please check back soon for new contents. www.domain-name.com
the superclass and executes the statements inside it. Hence, we get the output
I am an animal .
The flow of the program then returns back to the subclass constructor and
executes the remaining statements. Thus, I am a dog will be printed.
However, using super() is not compulsory. Even if super() is not used in the
subclass constructor, the compiler implicitly calls the default constructor of the
superclass.
The parameterized super() must always be the first statement in the body of
the constructor of the subclass, otherwise, we get a compilation error.
// parameterized constructor
Animal(String type) {
System.out.println("Type: "+type);
}
}
// default constructor
Dog() {
System.out.println("I am a dog");
}
}
class Main {
public static void main(String[] args) {
Dog dog1 = new Dog();
}
}
Output
Type: Animal
I am a dog
The compiler can automatically call the no-arg constructor. However, it cannot
Thank you for printing our content at www.domain-name.com. Please check back soon for new contents. www.domain-name.com
call parameterized constructors.
Related Tutorials
(/java-programming/generics) (/java-programming/string)
(/java-programming/logging) (/java-programming/guide)