1. Обзор
В этом быстром учебнике, мы будем смотреть на то, как использовать @Override аннотация.
2. @Override Аннотация
В подклассе мы можем переопределить или перегрузить методы экземпляра. Переопределение указывает на то, что подкласс заменяет унаследованное поведение. Перегрузка – это когда подкласс добавляет новое поведение.
Иногда мы перегружаемся случайно, когда на самом деле намеревались переопределить. Легко сделать эту ошибку в Java:
public class Machine { public boolean equals(Machine obj) { return true; } @Test public void whenTwoDifferentMachines_thenReturnTrue() { Object first = new Machine(); Object second = new Machine(); assertTrue(first.equals(second)); } }
Удивительно, но тест выше не удается. Это потому, что равняется метод перегрузки Объект равно , не переопределя его.
Мы можем использовать @Override аннотация о унаследованных методах, чтобы защитить нас от этой ошибки.
В этом примере мы можем добавить @Override аннотация над равняется метод:
@Override public boolean equals(Machine obj) { return true; }
На этом этапе компилятор поднимет ошибку, сообщив нам, что мы не переопределяем равняется как мы думаем.
Затем мы можем исправить нашу ошибку:
@Override public boolean equals(Object obj) { return true; }
Из-за того, как легко случайно перегрузиться, это общая рекомендация использовать @Override аннотация по всем унаследованным методам.
3. Заключение
В этом руководстве мы увидели, как @Override аннотации на Java.
Полный исходный код для примеров можно найти более на GitHub .