Can we override static methods?

Answers were Sorted based on User's Feedback



Can we override static methods?..

Answer / 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

Can we override static methods?..

Answer / venkateswara reddy

Yes, V can override static methods
But overridding and overridden methods must static

Is This Answer Correct ?    51 Yes 16 No

Can we override static methods?..

Answer / yogesh gandhi

Neha,

I didn't get your answer.
You can overload as well as override static methods, but
only with static methods.

I have tried it and it is getting compiled.

Example is here.
*********************************************************
public class abc
{
public static void main(String args[])
{

}
public static void trss()
{

}
public static void trss(int i)
{
}

}
*********************************************************

Is This Answer Correct ?    13 Yes 1 No

Can we override static methods?..

Answer / madan mohanp

we cannot override a static method but we can overload a
static method.
Ex: override is not possible
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.

Ex: overload is possible
public class abc
{
public static void main(String args[])
{

}
public static void trss()
{

}
public static void trss(int i)
{
}

}

Is This Answer Correct ?    15 Yes 4 No

Can we override static methods?..

Answer / guest

YES, WE CAN OVERRIDE STATIC METHODS BY STATIC METHODS

Is This Answer Correct ?    25 Yes 16 No

Can we override static methods?..

Answer / karun

yes ,we can override the static methods to static methods
only.
sorry for the previous my wrong answer.:((((

Is This Answer Correct ?    23 Yes 15 No

Can we override static methods?..

Answer / yogesh gandhi

Thanks for addition.
You are correct.

Static method cannot be overridden.
Overloading of static methods is possible.

Is This Answer Correct ?    7 Yes 0 No

Can we override static methods?..

Answer / neha jain

dear yogesh
sory for wrong answer we can not override static method
with static method that known as method hiding.plz view
following example
Briefly, when you override a method, you still get the
benefits of run-time polymorphism, and when you hide, you
don't. So what does that mean? Take a look at this code:

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 Test {
public static void main(String[] args) {
Foo f = new Bar();
f.instanceMethod();
f.classMethod();
}
}
If you run this, the output is
instanceMethod() in Bar
classMethod() in Foo

Is This Answer Correct ?    7 Yes 0 No

Can we override static methods?..

Answer / n.suresh babu

Yes, Static Methods can be overridden but it won't give
overridden behaviour. Overiding execution happens based on
the runtime object.

Is This Answer Correct ?    16 Yes 10 No

Can we override static methods?..

Answer / edward sudhaharchennai

Static methods can be hidden it cannot be overriden

Is This Answer Correct ?    4 Yes 0 No

Post New Answer

More Core Java Interview Questions

FOR EXAMPLE WE R HAVING TWO LIST ELEMENTS ..BOTH LISTS CONTAINS ID,NAME,PLACE ..I NEED TO COMPARE BOTH IDS IN TWO LISTS,IF ID'S R SAME MEANS WE HAVE ADD THE DETAILS(LIKE NAME,PLACE) TO MAP...HOW IS POSSIBLE ?CAN ANY ONE SUGGEST?

2 Answers  


Difference between string, stringbuffer and stringbuilder?

1 Answers  


If an object reference is set to null, will the garbage collector immediately free the memory held by that object?

1 Answers  


What is an object-oriented paradigm?

5 Answers  


what is Abstract DataType?

1 Answers  


Java is pass by value or pass by reference? Explain

1 Answers  


What is the differnence between String Buffer and String builder despite having knowledge that String builder is faster than String Buffer and last one is threadsafe.please tell another important difference.

3 Answers   IBM,


Explain the use of volatile field modifier?

1 Answers  


Where can i get Latest SUN Certification Dumps and what are the Sun Certification Codes that are available, Im new to JAVA, so please gimme info as i need to write J2EE - Core Java Certification

1 Answers  


how to print hello world every second till i have pressed enter key ???

1 Answers   SAP Labs,


What is merge sort in java?

1 Answers  


Difference between start() and run() method of thread class?

1 Answers  


Categories