Can we override static methods?
Answer Posted / sadheez
It may seems to be overriding the static methods, but the
real fact is HIDING.
class Foo {
public static void classMethod() {
System.out.println("classMethod() in Foo");
}
public void instanceMethod() {
System.out.println("instanceMethod() in Foo");
}
}
class Bar extends Foo {
public static void classMethod() {
System.out.println("classMethod() in Bar");
}
public void instanceMethod() {
System.out.println("instanceMethod() in Bar");
}
}
class StaticHiding {
public static void main(String[] args) {
Foo f = new Bar();
f.instanceMethod();
f.classMethod();
when u run this program output will be:
instanceMethod() in Bar
classMethod() in Foo.
Here if u say it to be overriding then the
subclass ie., Bar class having static classMethod() should
be executed. But the fact here is Foo class static
classMethod() is executed.
So its method HIDING and not method
overriding..
I hope i have given answer to my best if
anyone feels wrong plz do post ur suggestions..
Is This Answer Correct ? | 59 Yes | 1 No |
Post New Answer View All Answers
Is void a keyword in java?
What is multi level inheritance in java?
Explain which of the following methods releases the lock when yield(), join(),sleep(),wait(),notify(), notifyall() methods are executed?
Is hashmap thread safe?
What is the indent key?
What is set string?
What is a platform?
Can we define package statement after import statement in java?
What are the different http methods?
When is the arraystoreexception thrown?
What is prefix of a string?
What is the impact of declaring a method as final?
What is the main method java?
Can an interface be defined inside a class?
What is the purpose of abstract class?