Извините, я новичок в java , я искал ответы в Интернете , но везде говорят на очень сложном языке, может кто-нибудь объяснить, чтобы моя бабушка могла это понять?
Спасибо.
Извините, я новичок в java , я искал ответы в Интернете , но везде говорят на очень сложном языке, может кто-нибудь объяснить, чтобы моя бабушка могла это понять?
Спасибо.
Хотя многие дали вам ответ, я решил дать вам свой, так как считаю, что ни один из предыдущих не является полностью правильным.
Аннотация
@Override
просто используется, чтобы заставить компилятор проверять во время компиляции, что вы правильно переопределяете метод, и, таким образом, избегать ошибок времени выполнения, которые было бы гораздо сложнее обнаружить.Например, если бы вы переопределили метод
toString()
классаObject
и сделали бы это так:на самом деле вы не переопределяете метод, а создаете новый, поскольку правильное имя начинается со строчной, а не с прописной буквы. Поэтому, если позже в вашей программе вы попытаетесь получить
String
соответствующий экземплярMiClase
, вы попытаетесь сделать это, например:получение вывода, подобного этому:
MiClase@55b7a4e0
, так как вызывается метод родительского класса (который в данном случае является Object). Но если вместо этого вы добавите аннотацию:компилятор предупредит вас, что у вас возникла проблема, сообщением об ошибке, подобным этому: «Метод не переопределяет метод из своего суперкласса».
Вот почему такая аннотация существует, чтобы во время компиляции можно было определить, что вы не соответствуете требованиям для переопределения метода.
Я рекомендую вам всегда помещать эту аннотацию в методы, которые вы собираетесь переопределить, это избавит вас от многих проблем.
Ни за что. Использование аннотации
@Override
не является обязательным.Единственное, для чего он действительно хорош, это документация:
@Override
, должен переопределять метод некоторого родительского класса.Пример:
if переопределяет of , несмотря
metodoA()
на то, что не аннотируетсяHija
metodoA()
Base
@Override
Однако, если вы поместите его
@Override
в метод, который ничего не переопределяет, компилятор выдаст ошибку:Это способность класса, который наследует, изменять методы своего родительского класса, например:
теперь мы переопределяем метод handle, чтобы он продолжал существовать в дочернем классе, но имел другое поведение
Теперь, если, например, мы хотим получить доступ к методам указанного класса, это должно быть так:
ИСПОЛЬЗОВАНИЕ OVERRIDE Короче говоря, override позволяет методу переопределить или изменить объявление метода в вышестоящем классе.
Справочный источник
Это очень просто,
@Override
когда вы собираетесь переопределить метод класса при наследовании, я приведу вам пример:Если у меня есть класс
mascota
с функциейcorrer()
:Затем я создаю класс
perro
, который будет наследовать классmascota
, предполагая, что собаки тратят больше энергии на бег, поэтому мы модифицируем функцию следующимcorrer()
образом@Override
:В двух словах
@Override
, это позволяет вам переписать ранее определенную функцию предыдущего класса в ваш новый класс. Я надеюсь, что это поможет вам, приветствую.Самый простой ответ — тот, который содержится в той же документации, в переводе на которую написано что-то вроде этого:
Делая метод переопределяемым, вы можете использовать аннотацию @Override, которая сообщает компилятору, что вы намерены всегда переопределять метод суперкласса . И если по какой-то причине компилятор обнаружит, что метод не существует ни в одном из суперклассов, он выдаст ошибку.
Эта ошибка будет указывать на то, что вы забыли сделать необходимую функциональность, поэтому при работе с начинающими программистами будет очень полезно поставить ее, чтобы помочь им с ошибкой, указывающей на то, что они не соответствуют минимальным требованиям, которые вы указали. ваш интерфейс помогает им узнать, например:
Источник: https://docs.oracle.com/javase/tutorial/java/IandI/override.html .
Аннотация Java
@Override
используется для:Примером может быть:
Когда создается интерфейс для реализации объекта в классе, это позволяет перезаписать поведение, функциональность метода в классе, реализующем интерфейс.
@Override — это аннотация. Аннотации — это метаданные, которые JVM (виртуальная машина Java) считывает, чтобы знать, как обрабатывать код.
Чтобы понять, как работают аннотации, сначала нужно понять, как работают метаданные. Метаданные — это данные, содержащие информацию о других данных, эта информация используется программой, чтобы знать, как использовать эти данные. Например, в аудиофайле проигрыватель использует его формат, чтобы знать, как его воспроизводить, в этом случае метаданные — это формат.
JVM использует аннотации, чтобы решить, как обрабатывать код. JVM по-разному обрабатывает аннотированный код.
Переопределенный метод не обязательно должен содержать аннотацию
@Override
в обязательном порядке, переопределенный метод без нее все равно будет работать. Аннотация@Override
используется для обеспечения того, чтобы JVM правильно переопределяла метод. Это все равно, что сказать JVM: «Эй, не забудь правильно переопределить этот метод».Теперь не только JVM использует аннотации. Любая программа, библиотека, фреймворк и т. д., которые обрабатывают код программы, могут использовать аннотации; как в случае с фреймворком Spring, который использует собственные аннотации для обработки кода.
Обычному разработчику не нужно беспокоиться о том, как реализовать аннотации, ему просто нужно знать, для чего их использует программа, которая обрабатывает его код. Реализация аннотаций несколько сложнее, и вы должны понимать, что такое отражение и другие сложные вопросы.
Чтобы узнать, для чего программа использует свои аннотации, обратитесь к документации по этой аннотации. Например, аннотация @NonNull используется платформой Java для предотвращения того, чтобы аргументы метода были нулевыми.Если они равны нулю, платформа выдает исключение во время компиляции.
Чтобы узнать больше об аннотациях, см. следующую статью в официальной документации Java.
Аннотации