Yes, you can call the super class method from subclass overriding method using super keyword.
Syntax
super.methodName(arguments);
MethodOverridingDemo1.java
package com.sample.app;
public class MethodOverridingDemo1 {
public static class A{
public void welcomeUser() {
System.out.println("Hiiii!!!!!");
}
}
public static class B extends A{
@Override
public void welcomeUser() {
super.welcomeUser();
System.out.println("Hello...........");
}
}
public static void main(String[] args) {
B b = new B();
b.welcomeUser();
}
}
Output
Hiiii!!!!! Hello...........
Unlink constructor, super class method call doesn’t need to be first statement in the overriding method.
public static class B extends A {
@Override
public void welcomeUser() {
System.out.println("Hello...........");
super.welcomeUser();
}
}
MethodOverridingDemo2.java
package com.sample.app;
public class MethodOverridingDemo2 {
public static class A {
public void welcomeUser() {
System.out.println("Hiiii!!!!!");
}
}
public static class B extends A {
@Override
public void welcomeUser() {
System.out.println("Hello...........");
super.welcomeUser();
}
}
public static void main(String[] args) {
B b = new B();
b.welcomeUser();
}
}
Output
Hello........... Hiiii!!!!!
You can call super class method any number of times from the sub class method.
MethodOverridingDemo3.java
package com.sample.app;
public class MethodOverridingDemo3 {
public static class A {
public void welcomeUser() {
System.out.println("Hiiii!!!!!");
}
}
public static class B extends A {
@Override
public void welcomeUser() {
super.welcomeUser();
System.out.println("Hello...........");
super.welcomeUser();
super.welcomeUser();
super.welcomeUser();
}
}
public static void main(String[] args) {
B b = new B();
b.welcomeUser();
}
}
Output
Hiiii!!!!! Hello........... Hiiii!!!!! Hiiii!!!!! Hiiii!!!!!
You can call any non-private method of super class from the subclass.
public static class B extends A {
public void demo() {
welcomeUser();
welcomeUser();
}
}
SuperclassMethodCallDemo.java
package com.sample.app;
public class SuperclassMethodCallDemo {
public static class A {
public void welcomeUser() {
System.out.println("Hiiii!!!!!");
}
}
public static class B extends A {
public void demo() {
welcomeUser();
welcomeUser();
}
}
public static void main(String[] args) {
new B().demo();
}
}
Output
Hiiii!!!!! Hiiii!!!!!
Is it mandatory to call super class method from overriding method?
No, it is optional.
MethodOverridingDemo4.java
package com.sample.app;
public class MethodOverridingDemo4 {
public static class A {
public void welcomeUser() {
System.out.println("Hiiii!!!!!");
}
}
public static class B extends A {
@Override
public void welcomeUser() {
System.out.println("Hello...........");
}
}
public static void main(String[] args) {
new B().welcomeUser();
}
}
Output
Hello...........
You may like
Quick guide to race condition in Java with examples
How to read the file content using an iterator in Java?
Implement a Closeable iterator in Java
Quick guide to generate random data in Java
What are the different cache eviction strategies?
No comments:
Post a Comment