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
How can u increase the heap size in the memory?
What is meant by memory leak?
What is the definition of tree ?
State the merge-sort principle and its time complexity.
Explain the importance of finally over return statement?
What is the difference between compare and compareto in java?
What is the java virtual machine?
what is collatration?
What is a list in java?
How to check if a list is sorted in java?
What is the purpose of void class?
What are predefined functions?
What do you know about the garbage collector?
What are disadvantages of java?
When should we create our own custom exception classes?