[ACCEPTED]-What is @Override for in Java?-overriding
As you describe, @Override creates a compile-time 10 check that a method is being overridden. This 9 is very useful to make sure you do not have 8 a silly signature issue when trying to override.
For 7 example, I have seen the following error:
public class Foo {
private String id;
public boolean equals(Foo f) { return id.equals(f.id);}
}
This 6 class compiles as written, but adding the 5 @Override tag to the equals method will 4 cause a compilation error as it does not 3 override the equals method on Object. This 2 is a simple error, but it can escape the 1 eye of even a seasoned developer
It not only makes the compiler check - although 7 that would be enough to make it useful; it 6 also documents the developer's intention.
For 5 instance, if you override a method but don't 4 use it anywhere from the type itself, someone 3 coming to the code later may wonder why 2 on earth it's there. The annotation explains 1 its purpose.
Nope, you pretty much nailed it.
@Override
tells the 7 compiler your intent: if you tag a method @Override
, you 6 intended to override something from the 5 superclass (or interface, in Java 6). A 4 good IDE will helpfully flag any method 3 that overrides a method without @Override
, so the 2 combination of the two will help ensure 1 that you're doing what you're trying to.
nope -- except that it also improves readability 4 (i.e. in addition to whatever indicator 3 your IDE uses, it makes it easy to spot 2 that a method overrides a declaration in 1 the superclass)
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.