Аннотация Override
Аннотация Override сообщает компилятору,
что текущий метод переопределяет метод
родительского класса или интерфейса. Это
необязательная, но очень полезная аннотация,
так как она помогает обнаружить ошибки на
этапе компиляции: если метод, помеченный
Override, по какой-то причине не
переопределяет метод суперкласса (например,
из-за опечатки в имени или неверных параметров),
компилятор выдаст ошибку. Аннотация не имеет
параметров и не влияет на работу программы
во время выполнения.
Синтаксис
@Override
public returnType methodName(parameters)
{
// body
}
Пример
Давайте создадим родительский класс Animal
и дочерний класс Dog, в котором
переопределим метод makeSound с
помощью аннотации Override:
class Animal
{
public void makeSound()
{
System.out.println("Some sound");
}
}
class Dog extends Animal
{
@Override
public void makeSound()
{
System.out.println("Woof");
}
}
public class Main
{
public static void main(String[] args)
{
Animal myDog = new Dog();
myDog.makeSound();
}
}
Результат выполнения кода:
"Woof"
Пример
Если допустить ошибку в имени метода и
пометить его аннотацией Override,
компилятор сообщит об ошибке:
class Animal
{
public void makeSound()
{
System.out.println("Some sound");
}
}
class Dog extends Animal
{
@Override
public void makeSund()
{
System.out.println("Woof");
}
}
Компилятор выдаст ошибку, так как метод
makeSund не переопределяет метод
makeSound из класса Animal.
Без аннотации Override такая ошибка
осталась бы незамеченной.
Смотрите также
-
аннотация
Annotation,
которая является базовой для всех аннотаций -
аннотация
Deprecated,
которая помечает устаревший код -
аннотация
SuppressWarnings,
которая подавляет предупреждения компилятора -
аннотация
FunctionalInterface,
которая помечает функциональный интерфейс