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
What is http client in java?
What is lexicographically smallest string?
Can we use a default constructor of a class even if an explicit constructor is defined?
What is gui programming?
What is the set interface in java programming?
Why a dead thread occurs?
What are the uses of synchronized keyword?
What is the main functionality of the remote reference layer?
Explain access modifiers in java.
Do you know how to reverse string in java?
public class Test { public static void main(String[] args) { int countA = 0; int countB = 0; int countC = 0; int countD = 0; int countE = 0; int countF = 0; int countG = 0; int countH = 0; int countI = 0; int countJ = 0; int countK = 0; int countL = 0; int countM = 0; int countN = 0; int countO = 0; int countP = 0; int countQ = 0; int countR = 0; int countS = 0; int countT = 0; int countU = 0; int countV = 0; int countW = 0; int countX = 0; int countY = 0; int countZ = 0; } } Can anybody tell me any alternate solution(like loop or something) to automate this initialization process. Ex:- for(char chr='A';chr<='Z'; chr++) { (int) String "count"+chr = 0; }
hr interview how many minutes asking question
Tell some latest versions in JAVA related areas?
Is int a class in java?
Is arraylist ordered?