Eric Sosman <> writes:
> On 7/23/2012 2:30 PM, bob smith wrote:
>> Is it really necessary to write @Override when you override or is this just
"a good thing"?
>
> Two benefits of @Override appear to me, one from its presence
> and one from its absence:
>
> - If you write @Override and then misspell the method name or
> mess up the parameter list, Java will say "Hey, wait: There's
> nothing in the superclass with this signature; what do you
> think you're doing?" And then you'll say "Oops!" and fix
> the problem, instead of wondering why your "overriding" method
> doesn't seem to work.
>
> - If you write a method and your IDE starts suggesting that you
> ought to tag it with @Override, you'll be alerted that you've
> overridden something you didn't intend to.[*]
>
> Two benefits; that's all I see. Hence, like indentation and
> Javadoc comments, not "really necessary" ...
>
> [*] This actually happened to me earlier today. I was writing
> a little Swing doodad to edit the "locations" of inventory items,
> and I gave it a getLocation() method. NetBeans started clamoring
> for @Override, and I realized that my doodad extended JPanel which
> in turn extended JComponent, which already has a getLocation() ...
> Time for "Facepalm!" and a quick name change.

When you've overridden a class method in some third-party package and then
upgrade to a later version of that package, it sometimes turns out that the
method has been removed, or renamed, or given some additional parameters. It's
much nicer to get a compile-time error than to eventually discover that your
overriding method is no longer being called. This has happened to me more than
once with Hibernate.

Share This Page

Welcome to The Coding Forums!

Welcome to the Coding Forums, the place to chat about anything related to programming and coding languages.

Please join our friendly community by clicking the button below - it only takes a few seconds and is totally free. You'll be able to ask questions about coding or chat with the community and help others.
Sign up now!