The static methods can't be overriden because the are associated with the class not with objects instances of that class.
On Jan 3, 6:51 pm, Try_Catch_Finally <[email protected]> wrote: > Yes, static method can not be overridden. > The static method you have overriden is not actual overriding(because > it is static), you are simply hiding another static method. > If you try to override a static method, the compiler doesn't actually > stop you - but just doesn't do what you think it does. > > And yes if you override an instance method then only you will be > implementing actual polymorphism. If you override a static method, > compiler will not stop you but you will not be actually achieving > polymorphism. > > hope that helps. > > <Neeraj Sidhaye/>http://ExtremePortal.blogspot.com > > On Jan 2, 11:46 pm, nn roh <[email protected]> wrote:> Hi , > > > Following program shows the overriding ,the ouput is: > > classMethod() in Foo > > instanceMethod() in Bar > > > it means we can't override static methods , why?? > > > class Test { > > public static void main(String[] args) { > > Foo f = new Bar(); > > f.classMethod(); > > f.instanceMethod(); > > } > > > } > > > class Foo { > > protected int i=3; > > static void classMethod() { > > System.out.println("classMethod() in Foo"); > > } > > > public void instanceMethod() { > > System.out.println("instanceMethod() in Foo"); > > } > > > } > > > class Bar extends Foo { > > static public void classMethod() { > > System.out.println("classMethod() in Bar"); > > } > > > public void instanceMethod() { > > System.out.println("instanceMethod() in Bar"); > > } > > > }- Hide quoted text - > > > - Show quoted text - > > -- To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/javaprogrammingwithpassion?hl=en
