Can static methods be overridden?
Answer Posted / coder
Remember that static methods can't be overridden! This doesn't mean they
can't be redefined in a subclass, but redefining and overriding aren't the same thing.
Let's take a look at an example of a redefined (remember, not overridden), static
method:
class Animal
{
static void doStuff()
{
System.out.print("a ");
}
}
class Dog extends Animal
{
static void doStuff()
{
// it's a redefinition,
// not an override
System.out.print("d ");
}
public static void main(String [] args)
{
Animal [] a = {new Animal(), new Dog(), new Animal()};
for(int x = 0; x < a.length; x++)
a[x].doStuff();
// invoke the static method
}
}
/*
Running this code produces the output:
a a a
*/
Here redefining means that you declare a static method with the same signature as the supper class'. So the same method in super class is redefined in the subclass. As you already know that the static methods can't be overridden so this is what you can do if you want the static method to behave differently in the subclass. But remember you can't have the polymorphism since no overridden happens.
| Is This Answer Correct ? | 1 Yes | 1 No |
Post New Answer View All Answers
Is empty .java file name a valid source file name?
What is the purpose of garbage collection in java, and when is it used?
What exactly is java?
Difference between class#getinstance() and new operator ?
What do you know about the garbate collector?
What is meant by distributed application? Why are we using that in our application?
Can we force garbage collector to run ?
What is byte code and why is it important to java’s use for internet programming?
Compare overloading and overriding?
Can we convert list to set in java?
In how many ways we can create threads in java?
Explain which of the following methods releases the lock when yield(), join(),sleep(),wait(),notify(), notifyall() methods are executed?
What is the use of predicate in java 8?
How can I become a good programmer?
Explain about doubly linked list