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
Explain the hierarchy of java exception classes?
What is a classloader in java?
I want to store more than 10 objects in a remote server? Which methodology will follow?
What is keyword in oop?
What isan abstract class and when do you use it?
What is a method header?
What is the meaning of nullable?
What is proper subset?
How do singleton patterns work?
What is java argument list?
Can keyword be used as identifier?
What is an empirical question?
How does the java compiler work?
What is called module?
How do you declare a string variable?