Introduction
The @Override annotation in Java indicates that a method is intended to override a method in a superclass. It helps ensure that the method correctly overrides the superclass method.
Table of Contents
- What is
@Override? - Benefits of Using
@Override - How to Use
@Override - Examples
- Conclusion
1. What is @Override?
@Override is an annotation used to signify that a method is overriding a method in its superclass. It provides compile-time checking to ensure the method signature matches.
2. Benefits of Using @Override
- Compile-Time Checking: Ensures the method signature matches the overridden method.
- Readability: Makes the code clearer and easier to understand.
- Maintenance: Helps prevent errors during code refactoring.
3. How to Use @Override
To use @Override, simply place the annotation above the method that overrides a method from the superclass.
4. Examples
Example 1: Correct Usage of @Override
This example demonstrates using @Override to correctly override a method.
class Animal {
void sound() {
System.out.println("Animal sound");
}
}
class Dog extends Animal {
@Override
void sound() {
System.out.println("Bark");
}
}
public class OverrideExample {
public static void main(String[] args) {
Dog dog = new Dog();
dog.sound(); // Output: Bark
}
}
Example 2: Compile-Time Error Without @Override
This example shows how @Override can help catch errors during compilation.
class Bird {
void fly() {
System.out.println("Flying");
}
}
class Sparrow extends Bird {
@Override
void flly() { // Typo in method name
System.out.println("Sparrow flying");
}
}
public class OverrideErrorExample {
public static void main(String[] args) {
Sparrow sparrow = new Sparrow();
sparrow.fly(); // Output: Flying
}
}
In this example, a compile-time error will occur because flly() does not override fly() due to the typo.
5. Conclusion
The @Override annotation in Java is a valuable tool for ensuring that methods are correctly overridden. It enhances code readability, maintainability, and helps catch errors during compilation, making it an essential practice in Java development.