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
What is the meaning of 3 dots in java?
How many types of voids are there?
What is object cloning in Java?
Is 0 true or false in java?
Which software is used for java programming?
Can we serialize singleton class?
How does queue work in java?
What is local variable and instance variable?
What is use of a abstract variable?
What does indexof mean?
How can we make copy of a java object?
What is the difference between Java Program Constructor and Java Program Method, What is the purpose of Java Program constructor Please Explain it Breafily?
Why do we declare a class static?
What are thread local variables?
What is the use of put method?