wood burning stoves 2.0*
The moose likes Java in General and the fly likes Anonymous  inner class Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Spring in Action this week in the Spring forum!
JavaRanch » Java Forums » Java » Java in General
Bookmark "Anonymous  inner class" Watch "Anonymous  inner class" New topic
Author

Anonymous inner class

Hemant Khandal
Greenhorn

Joined: May 29, 2011
Posts: 11
how can we access overriding method foof()?Is there any way to access this?thanks in advance.





[HENRY: Added Code Tags]
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18896
    
  40

Hemant Khandal wrote:how can we access overriding method foof()?Is there any way to access this?thanks in advance.



Not sure of your issue here. By definition, the overriding method (subclass) is always the method that will be called. It is the super class' method (the method that was overridden) that is no longer accessible. And this is true, even if the subclass is an anonymous inner class.

Henry


Books: Java Threads, 3rd Edition, Jini in a Nutshell, and Java Gems (contributor)
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39409
    
  28
Do you mean overridden? You can use the super keyword, but only in a non-static context in the subclass.
Hemant Khandal
Greenhorn

Joined: May 29, 2011
Posts: 11
Now I am talking only above code.I want to call overridden method foof() from main().Is it possible ? If yes then please let me know how can we do this?
It's pleasure for me if you add some line as per situation.
This is only for understanding java concepts.
Thanks in advance.
Henry Wong
author
Sheriff

Joined: Sep 28, 2004
Posts: 18896
    
  40

Hemant Khandal wrote:Now I am talking only above code.I want to call overridden method foof() from main().Is it possible ? If yes then please let me know how can we do this?


From the code, it is *not* possible. The Foo instance is created internal to the go() method. It can't be accessed from the main method.

And this doesn't have anything to do with it being an anonymous inner class, or if the method is overridden or not. The instance is just not accessible to the main method. Period. You will have to modify the go() method to expose it somehow, before the main method can access it.

Henry
 
 
subject: Anonymous inner class