aspose file tools*
The moose likes Beginning Java and the fly likes Overriden and Overriding Methods Declaration Conundrum. Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "Overriden and Overriding Methods Declaration Conundrum. " Watch "Overriden and Overriding Methods Declaration Conundrum. " New topic
Author

Overriden and Overriding Methods Declaration Conundrum.

Abhijit Ghatnekar
Greenhorn

Joined: Nov 10, 2007
Posts: 19
Hello All,


I'm very confused with the following piece of code that I have which fails to compile -


This fails to compile due to the checked exception declaration in the superclass method eat()

I summarize the following rule of overriding concerning checked exceptions below

1) The overriding method MUST not throw any new or broader checked exceptions than those declared by the method in the superclass.

If I reason with this rule at the back of my mind, this code SHOULD compile. Furthermore, in the code the subclass object is assigned to a superclass reference which means in this case the subclass version of the eat method should execute successfully. Can anyone point me out of this dilemma?

Regds,
Abhijit.
John Jai
Bartender

Joined: May 31, 2011
Posts: 1776
The method eat in the Animal class throws a Checked Exception. So it's necessary for you to handle it during compile time. The compiler will not know which object Animal reference will be pointing to.
John Jai
Bartender

Joined: May 31, 2011
Posts: 1776
Adding to that the compiler will not complain if its a RuntimeException.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39784
    
  28
The fact that the Exception is unchecked does not make it better design. It simply means you can confuse the compiler.
John Jai
Bartender

Joined: May 31, 2011
Posts: 1776
Campbell Ritchie wrote:The fact that the Exception is unchecked does not make it better design. It simply means you can confuse the compiler.

You are right... I just want to mention that the compiler error was due to the Checked Exception and not based on the overriding concept.
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 39784
    
  28
I could have sworn I had seen the same code in a similar question only a few weeks ago, and I was mistaken about the Exceptions. But I can't seem to find it on a search. Maybe you will be more successful than me; try searching.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Overriden and Overriding Methods Declaration Conundrum.